思路
双指针,i指向当前更改的数组下标,j指向略过移除元素的下标,即j一直在i前面或与i相等。再设置count,一旦发现需要移除的,count就+1。
代码
int removeElement(vector<int>& nums, int val) {
int i=0,j=0,size=nums.size(),count=0;
while(j<size){
if(nums[j]!=val)
{
nums[i]=nums[j];
j++;
i++;
}else{
count++;
j++;
}
}
return size-count;
}
运行结果
tips
不要把简单问题复杂化