最初考虑到了双指针法:
public int removeElement(int[] nums, int val) {
int left = 0;
int right = 0;
while (right < nums.length) {
if (nums[right] != val) {
nums[left] = nums[right];
left++;
right++;
} else {
right++;
}
}
return left;
}
查看题解,可以优化双指针,减少遍历
public int removeElement(int[] nums, int val) {
int left = 0;
int right = nums.length - 1;
while (left <= right){
if(nums[left] == val){
nums[left] = nums[right];
right--;
}
else {
left++;
}
}
return left;
}
Comments NOTHING