leetcode_remove_element

难度:Easy
解题思路:使用两个迭代器一个指向已经处理过的末尾,另一个指向未处理过的首部。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14

class Solution {
public:
int removeElement(vector<int>& nums, int val) {
auto solved_it = nums.begin();
auto unsolved_it = nums.begin();
for(;unsolved_it != nums.end(); unsolved_it++){
if(*unsolved_it != val){
swap(*(solved_it++), *unsolved_it);
}
}
return solved_it-nums.begin();
}
};

代码结果:3ms,超过23.02%。