文章目录

  • 题目描述
  • 解题思路
  • 代码详解
  • 运行截图

题目描述

题目链接

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝
int len = removeSpecifyElement(nums, val);// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。
for (int i = 0; i < len; i++) {System.out.print(nums[i] + "\t");
}

示例 1:

输入:nums = [3,2,2,3], val = 3
输出:2, nums = [2,2]
解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。

示例 2:

输入:nums = [0,1,2,2,3,0,4,2], val = 2
输出:5, nums = [0,1,3,0,4]
解释:函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。注意这五个元素可为任意顺序。你不需要考虑数组中超出新长度后面的元素。

提示:

  • 0 <= nums.length <= 100
  • 0 <= nums[i] <= 50
  • 0 <= val <= 100

解题思路

  1. 先创建集合
  2. 遍历nums数组,判断每个值等不等于 val,不等于就添加进去
  3. 因为数组本身的有序,再加上集合的有序性,所以集合内的内容就是我们想要的。遍历集合,将数组的元素进行修改。
  4. 直接返回集合大小即可。

代码详解

package question;import java.util.LinkedList;
import java.util.List;/*** @author keke* @version 1.0* @className Question116* @description* @time 2023/5/29 23:33*/
public class Question116 {public static void main(String[] args) {int[] nums = {0, 1, 2, 2, 3, 0, 4, 2};int val = 2;// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝int len = removeSpecifyElement(nums, val);// 在函数里修改输入数组对于调用者是可见的。// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。for (int i = 0; i < len; i++) {System.out.print(nums[i] + "\t");}}private static int removeSpecifyElement(int[] nums, int val) {List<Integer> list = new LinkedList<>();for (int num : nums) {if (num != val) {list.add(num);}}int i = 0;for (Integer integer : list) {nums[i++] = integer;}return list.size();}
}

运行截图

116.移除指定元素 removeSpecifyElement相关推荐

  1. js 数组移除指定元素【函数封装】(含对象数组移除指定元素)

    普通数组移除指定元素 // 普通数组移除指定元素 function removeItem(arr, item) {let targetIndex = arr.findIndex((itemTemp) ...

  2. list集合移除指定元素

    场景:使用for循环删除集合中的指定元素 定义一个list集合,并添加数据: List<String> list=new ArrayList<>();list.add(&quo ...

  3. JQuery移除指定元素

    几个前端使用的移除元素的方法,可能这些方法还有别的作用,但是这里只说他们清空的作用: remove() - 删除被选元素(及其子元素和注释---被选元素及其内部所有的内容) empty() - 从被选 ...

  4. JQuery移除指定元素内容

    remove() 删除被选元素及内部所有内容(包括注释及子元素) empty() 删除被选元素的子元素 html(" ") 删除被选元素的子元素 empty() 和 html(&q ...

  5. List中移除指定元素

    例一: 想在list中删除元素,先看下面的这一段代码: public class App2 {public static void main( String[] args ){List<Stri ...

  6. JQuery实现数组移除指定元素

    公式: 数组.splice($.inArray(元素,数组),数量); 实例: var arr = ['a','b','c','d'];arr.splice($.inArray('c',arr),1) ...

  7. C# 数组移除指定元素

    方式一:通过差集的方式排除0 new List<int> { 0,1,2,3,4,5 }.Except(new List<int> { 0 }).ToList() 方式二:先去 ...

  8. java list移除所有元素,从List中移除指定 List 中包含的其所有元素(可选操作)。...

    从List中移除指定 List 中包含的其所有元素,这个当然用List里面的removeAll方法了,但是有朋友说能不能不用removeAll呀 于是我就写了如下代码: class="jav ...

  9. java list移除符合条件的元素_从List中移除指定 List 中包含的其所有元素(可选操作)。...

    从List中移除指定 List 中包含的其所有元素,这个当然用List里面的removeAll方法了,但是有朋友说能不能不用removeAll呀 于是我就写了如下代码: List l = ...; L ...

最新文章

  1. 免费云服务器无限流量,云服务器弄无限流量
  2. unity拖拽 到固定位置_Unity3D拖动任意对象GameObject移动到任意地方
  3. nacos mysql8.0修改
  4. 2017年秋招-广联达面试及思考
  5. 动手学深度学习(PyTorch实现)(十)--NiN模型
  6. c语言 static变量和函数
  7. 常见计算机基础笔试题总结quickstart
  8. python3 编程学习链接
  9. POJThe Doors AND NYIST 有趣的问题
  10. mike21换成计算机名称,[转载]mike21基本介绍
  11. python监控网页_【小白教程】Python3监控网页
  12. 【高手推荐:主题下载】
  13. 小米6手机关于 手机重启后密码策略更改 密码错误 及wifi解决办法
  14. 在页眉插入横线或下划线
  15. 亮度、对比度与饱和度
  16. Vue动态组件、组件缓存、组件激活和非激活、组件插槽、组件name
  17. 煮酒论java -- 类和对象
  18. 四、GStreamer基础
  19. 定位后端开发,有哪些书籍值得推荐?
  20. 手机录音 怎么单声道_手机音量太小怎么办?教你一招只需打开这里,进来学学吧...

热门文章

  1. python 给QQ好友定时发送消息
  2. Microsoft Excel 教程:如何在 Excel 中创建公式并使用内置函数执行计算?
  3. 网络运维工程师面试(笔试)
  4. 大疆OSMO口袋云台相机惊艳上市!友商该如何是好。。。
  5. 大疆御Pro云台故障修复
  6. springmvc文件上传下载
  7. 工业绝缘监测及故障定位产品在某电站的应用-安科瑞黄安南
  8. .so .so.1区别
  9. python世界那么大_世界这么大,Python 也想去看看
  10. 新疆2016年弃风弃光比例或将达50%左右