解题思路:
注意:数组只能覆盖,不能删除
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;}
}