双指针法又称快慢指针法。快指针遍历数组中的值,用于搜索需要删除的值。遇到正常值,慢指针记录下该值;遇到需要删除的值,快指针继续遍历,慢指针不改变。
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int slowIndex = 0;
for(int fastIndex = 0; fastIndex < nums.size(); fastIndex++){
if(val != nums[fastIndex]){
nums[slowIndex] = nums[fastIndex];
slowIndex++;
}
}
return slowIndex;
}
};