当前位置: 首页 > news >正文

leetcode2(移除元素)

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。

假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作:

  • 更改 nums 数组,使 nums 的前 k 个元素包含不等于 val 的元素。nums 的其余元素和 nums 的大小并不重要。
  • 返回 k

用户评测:

评测机将使用以下代码测试您的解决方案:

int[] nums = [...]; // 输入数组
int val = ...; // 要移除的值
int[] expectedNums = [...]; // 长度正确的预期答案。// 它以不等于 val 的值排序。int k = removeElement(nums, val); // 调用你的实现assert k == expectedNums.length;
sort(nums, 0, k); // 排序 nums 的前 k 个元素
for (int i = 0; i < actualLength; i++) {assert nums[i] == expectedNums[i];
}

如果所有的断言都通过,你的解决方案将会 通过

示例 1:

输入:nums = [3,2,2,3], val = 3
输出:2, nums = [2,2,_,_]
解释:你的函数函数应该返回 k = 2, 并且 nums 中的前两个元素均为 2。
你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。

注意:

1.移除元素适合用列表操作,removeIf,用数组直接操作,比较复杂且容易超时

2.注意返回的数组长和边界

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
class Solution {public int removeElement(int[] nums, int val) {int k=0;int len=0;List<Integer> list = new ArrayList<>();for (int num : nums) {list.add(num);}// 删除所有目标元素list.removeIf(n -> n == val);list.removeIf(n->n==-1);// Java 8+的lambda表达式// 转回数组for (int i = 0; i < list.size(); i++) {nums[i] = list.get(i);}return list.size();}public static void main(String[] args) {Scanner in = new Scanner(System.in);int[] n= new int[5];for (int i = 0; i < n.length; i++) {n[i]=-1;}int nline=0;String stringin = in.nextLine().trim();if(!stringin.isEmpty()){String[] str = stringin.split(",");for(String str1 : str){n[nline]=Integer.parseInt(str1.trim());nline++;}}int val=in.nextInt();Solution solution = new Solution();solution.removeElement(n,val);}
}

http://www.dtcms.com/a/358458.html

相关文章:

  • 本地部署音效生成器 Moodist 并实现外部访问
  • Spring Cloud 和 Dubbo 是目前主流的两大微服务框架,分别代表了两种不同的技术路线
  • HarmonyOS 应用开发:基于API 12及以上的现代化实践
  • I2C多点触控驱动开发详解
  • Elasticsearch logsdb 索引模式和 TSDS 的业务影响
  • 【小白笔记】基本的Linux命令来查看服务器的CPU、内存、磁盘和系统信息
  • 网络编程4-并发服务器、阻塞与非阻塞IO、信号驱动模型、IO多路复用..
  • MQTT 连接建立与断开流程详解(二)
  • 项目管理在企业中的作用
  • 小迪Web自用笔记7
  • Redission 实现延迟队列
  • 鸿蒙NEXT布局全解析:从线性到瀑布流,构建自适应UI界面
  • Notepad++常用设置
  • 金仓数据库迁移评估系统(KDMS)V4正式上线,助力企业高效完成数据库国产化替代
  • 果蔬采摘机器人:自动驾驶融合视觉识别,精准定位,高效作业
  • 【SoC】【W800】基于W800的PWM实现
  • 类和反射的机制
  • hashmap计算key的hash的时候为什么要右移16位
  • 鸿蒙ArkTS 核心篇-16-循环渲染(组件)
  • Ruoyi-vue-plus-5.x第一篇Sa-Token权限认证体系深度解析:1.3 权限控制与注解使用
  • 【计算机组成原理】LRU计数器问题
  • Vue3 + GeoScene 地图点击事件系统设计
  • Selenium + PO 框架进阶实践:接入 Allure 报告与 Jenkins 持续集成
  • macOs上ffmpeg带入libx264库交叉编译
  • docker 启动一个clickhouse , docker 创建ck数据库
  • Python远程文件管理移动端适配与跨平台优化实战
  • vue3多个el-checkbox勾选框设置必选一个
  • 【OpenGL ES】光栅化插值原理和射线拾取原理
  • Day17(前端:JavaScript基础阶段)
  • Cocos游戏中自定义按钮组件(BtnEventComponent)的详细分析与实现