移除指定元素


1.巧妙的移动元素

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int count = 0;
for (int i = 0; i < nums.size(); ++i) {
if (nums[i] == val) {
count++;
} else {
nums[i - count] = nums[i];
}
}
return nums.size() - count;
}
};

2.重复项删除类似

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int black = 0;
for (int red = 0; red < nums.size(); ++red) {
if (nums[red] != val) {
nums[black] = nums[red];
black++;
}
}
return black;
}
};