1.原题
2.思路
双指针法(快慢指针法): 通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。
定义快慢指针
- 快指针:寻找新数组的元素 ,新数组就是不含有目标元素(移除的元素)的数组
- 慢指针:指向更新 新数组下标的位置
3.整体代码
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int slow = 0;
//for(int fast = 0;fast <=nums.size()-1;fast++) 会发生错误
for(int fast = 0;fast <nums.size();fast++)
{
if(val != nums[fast])
{
nums[slow] = nums[fast];
slow++;
}
}
return slow;
}
};
for(int fast = 0;fast <=nums.size()-1;fast++) 会发生错误
对这个错误还是不确定,有朋友知道的欢迎dd