题解:利用两指针,一个用来更新数组一个用来遍历数组
int removeElement(vector<int>& nums, int val) {
int i=0;
for(int j=0;j<nums.size();j++)
{
if(nums[j]!=val){
nums[i]=nums[j];
i++;
}
}
return i;
}
另解:注意到题目不要求数组的顺序所以每次只要把val的元素跟最后一个元素替换即可,每替换一次n--
int removeElement(vector<int>& nums, int val) {
int i=0;
int n=nums.size();
while(i<n)
{
if(nums[i]==val){
nums[i]=nums[n-1];
n--;
}else i++;
}
return i;
}