27. 移除元素
思路(双指针):
- 创建两个变量 slow 和 fast。 slow代表要更改的元素下标以及最后返回的长度,fast代表依次遍历数组
- nums[fast] 依次遍历数组,遇到与val不相等的即放进 nums[slow] 中,slow++。直至nums[fast]遍历完数组
代码实现
class Solution {
public int removeElement(int[] nums, int val) {
if (nums.length == 0) {
return 0;
}
int slow = 0;
int fast = 0;
while (fast < nums.length) {
if (nums[fast] != val) {
nums[slow] = nums[fast];
slow++;
}
fast++;
}
return slow;
}
}