给你一个数组 nums
和一个值 val
,你需要 原地 移除所有数值等于 val
的元素。元素的顺序可能发生改变。然后返回 nums
中与 val
不同的元素的数量。
假设 nums
中不等于 val
的元素数量为 k
,要通过此题,您需要执行以下操作:
- 更改
nums
数组,使nums
的前k
个元素包含不等于val
的元素。nums
的其余元素和nums
的大小并不重要。 - 返回
k
。 -
示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。 你不需要考虑数组中超出新长度后面的元素。
示例 2: 给定 nums = [0,1,2,2,3,0,4,2], val = 2, 函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。
你不需要考虑数组中超出新长度后面的元素
-
package com.itheima.a; public class Test4 { public static void main(String[] args) { int[] nums={0,1,2,3,3,0,4,2}; int val=2; int i = removerElement(nums, val); System.out.println(i); } public static int removerElement(int[] nums,int val){ int slowIndew=0; for (int fastIndex = 0; fastIndex < nums.length; fastIndex++) { if(nums[fastIndex]!=val){ nums[slowIndew]=nums[fastIndex]; slowIndew++; } } return slowIndew; } }
代码如上,谢谢观看,给个关注和点赞ba!