
难度:Easy
解题思路:设置两个迭代器,用其中一个迭代器遍历数组,另一个迭代器保证其之前的部分元素不重复。为了保证部分元素不重复,需要进行元素交换。
代码如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
class Solution { public: int removeDuplicates(vector<int>& nums) { if(nums.size() <= 1) return nums.size(); auto solved_it = nums.begin(); auto unsolved_it = solved_it + 1; auto end_it = nums.end(); while(unsolved_it != end_it) { if (*unsolved_it != *solved_it ) { swap(*unsolved_it, *(solved_it+1)); unsolved_it++; solved_it++; } else { unsolved_it++; } } return solved_it-nums.begin()+1; } };
|
提交结果:25 ms,超过88.10%。
近期评论