法1:快慢指针
Python
class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
slow, fast = 0, 0
n = len(nums)
while fast < n:
if nums[fast] != val:
nums[slow] = nums[fast]
slow += 1
fast += 1
return slow
Java
class Solution {
public int removeElement(int[] nums, int val) {
int slow = -1, fast = 0;
while (fast < nums.length) {
if (nums[fast] != val) {
nums[++slow] = nums[fast++];
} else {
fast++;
}
}
return slow + 1;
}
}