和LeetCode第 26 题:删除排序数组中的重复项(C++)_qq_32523711的博客-CSDN博客是类似的
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int i = 0;
for(; i < nums.size(); ++i){
if(nums[i] == val) break; //找到第一个等于val的元素
}
//将不等于val的元素移到前面来
for(int j = i+1; j < nums.size(); ++j){
if(nums[j] != val) nums[i++] = nums[j];
}
return i;
}
};
这样也行,其实是一样的思路:
class Solution {
public:
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];
}
return i;
}
};