思路:
和昨天的每日一题相似,同样使用快慢指针,区别在于我们比较快指针所指的元素是否等于val,如果不等那么就将其放到慢指针所指的地方。最后return slow即可。
代码:
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int n=nums.size();
int slow=0;
for(int fast=0;fast<n;++fast){ //之前初始化为fast=1,但是如果第一个元素不同,就会被第二个不同的元素覆盖掉,只能初始化为0
if(nums[fast]!=val){
nums[slow]=nums[fast];
slow++;
}
}
return slow;
}
};
原文:https://www.cnblogs.com/Mrsdwang/p/14676272.html