这是双指针快慢指针的第二个情形:
我们用快指针去找与目标值相同的值,用慢指针来呈现新的数组内容(索引)。
图源力扣:
代码:
public static int removeElement(int[] nums, int val) {
int slow = 0;
int fast = 0;
int n = nums.length;
for (int i = 0; i < n; i++) {
fast = i;
if(nums[fast] != val){
nums[slow] = nums[fast];
slow++;
}
}
return slow;
}