int removeElement(vector<int>& nums, int val) {
int j = 0;
for (int i = 0; i < nums.size(); i++) {
if (nums[i] != val) {
nums[j] = nums[i];
j++;
}
}
return j;
}
或者,直接用erase函数
int removeElement(vector<int>& nums, int val) {
vector<int>::iterator itr=nums.begin();
while (itr!=nums.end()) {
if (*itr == val) {
nums.erase(itr);
}
else {
itr++;
}
}
return nums.size();
}
不用remove函数,因为remove是把元素放到数组最后,但是不删除,因此size不改变。