解题思路:
注意:数组只能覆盖,不能删除
erase方法的复杂度为O( n )而不是O( 1 ),因为需要把删除后后面的数组向前移动
方法一:双层for循环暴力
方法二:快慢指针
fast表示新数组的元素
slow表示新数组元素的下标
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;
}
}