双指针
用 left 记录新数组长度,right 扫描数组;遇到不等于 val 的元素就写到 left 位置并后移。
时间复杂度
空间复杂度
1 2 3 4 5 6 7 8 9 10 11 12 13
| class Solution { public int removeElement(int[] nums, int val) { int left = 0, right = 0; while (right < nums.length) { if (nums[right] != val) { nums[left] = nums[right]; left++; } right++; } return left; } }
|