116.移除指定元素 removeSpecifyElement
文章目录
- 题目描述
- 解题思路
- 代码详解
- 运行截图
题目描述
题目链接
给你一个数组 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
解题思路
- 先创建集合
- 遍历nums数组,判断每个值等不等于 val,不等于就添加进去
- 因为数组本身的有序,再加上集合的有序性,所以集合内的内容就是我们想要的。遍历集合,将数组的元素进行修改。
- 直接返回集合大小即可。
代码详解
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相关推荐
- js 数组移除指定元素【函数封装】(含对象数组移除指定元素)
普通数组移除指定元素 // 普通数组移除指定元素 function removeItem(arr, item) {let targetIndex = arr.findIndex((itemTemp) ...
- list集合移除指定元素
场景:使用for循环删除集合中的指定元素 定义一个list集合,并添加数据: List<String> list=new ArrayList<>();list.add(&quo ...
- JQuery移除指定元素
几个前端使用的移除元素的方法,可能这些方法还有别的作用,但是这里只说他们清空的作用: remove() - 删除被选元素(及其子元素和注释---被选元素及其内部所有的内容) empty() - 从被选 ...
- JQuery移除指定元素内容
remove() 删除被选元素及内部所有内容(包括注释及子元素) empty() 删除被选元素的子元素 html(" ") 删除被选元素的子元素 empty() 和 html(&q ...
- List中移除指定元素
例一: 想在list中删除元素,先看下面的这一段代码: public class App2 {public static void main( String[] args ){List<Stri ...
- JQuery实现数组移除指定元素
公式: 数组.splice($.inArray(元素,数组),数量); 实例: var arr = ['a','b','c','d'];arr.splice($.inArray('c',arr),1) ...
- C# 数组移除指定元素
方式一:通过差集的方式排除0 new List<int> { 0,1,2,3,4,5 }.Except(new List<int> { 0 }).ToList() 方式二:先去 ...
- java list移除所有元素,从List中移除指定 List 中包含的其所有元素(可选操作)。...
从List中移除指定 List 中包含的其所有元素,这个当然用List里面的removeAll方法了,但是有朋友说能不能不用removeAll呀 于是我就写了如下代码: class="jav ...
- java list移除符合条件的元素_从List中移除指定 List 中包含的其所有元素(可选操作)。...
从List中移除指定 List 中包含的其所有元素,这个当然用List里面的removeAll方法了,但是有朋友说能不能不用removeAll呀 于是我就写了如下代码: List l = ...; L ...
最新文章
- 免费云服务器无限流量,云服务器弄无限流量
- unity拖拽 到固定位置_Unity3D拖动任意对象GameObject移动到任意地方
- nacos mysql8.0修改
- 2017年秋招-广联达面试及思考
- 动手学深度学习(PyTorch实现)(十)--NiN模型
- c语言 static变量和函数
- 常见计算机基础笔试题总结quickstart
- python3 编程学习链接
- POJThe Doors AND NYIST 有趣的问题
- mike21换成计算机名称,[转载]mike21基本介绍
- python监控网页_【小白教程】Python3监控网页
- 【高手推荐:主题下载】
- 小米6手机关于 手机重启后密码策略更改 密码错误 及wifi解决办法
- 在页眉插入横线或下划线
- 亮度、对比度与饱和度
- Vue动态组件、组件缓存、组件激活和非激活、组件插槽、组件name
- 煮酒论java -- 类和对象
- 四、GStreamer基础
- 定位后端开发,有哪些书籍值得推荐?
- 手机录音 怎么单声道_手机音量太小怎么办?教你一招只需打开这里,进来学学吧...