class Solution {
public int removeElement(int[] nums, int val) {
int slow = 0;
for(int fast = 0 ; fast < nums.length ; fast++){
if(nums[fast] != val ){
nums[slow] = nums[fast];
slow++;
}
}return slow;
}
}
双指针,覆盖原数组得到新数组,fast代表当前遍历到的位置,slow即所得新数组的大小
当前元素不是目标元素时,从0开始覆盖旧数组
当前元素为移除元素时,不进行覆盖,fast自增后跳过