您的位置:首页 > 其它

080 Remove Duplicates from Sorted Array II [Leetcode]

2015-08-02 12:56 453 查看

题目内容

Follow up for “Remove Duplicates”: What if duplicates are allowed at most twice?

For example, Given sorted array nums = [1,1,1,2,2,3],

Your function should return length = 5, with the first five elements of nums being 1, 1, 2, 2 and 3. It doesn’t matter what you leave beyond the new length.

题目比较简单,用一个计数器和一个前向记录来判断是否删除下一个节点即可。注意erase会修改vector的长度。

运行时间20ms,代码如下:

class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if(nums.size() <= 2) {
return nums.size();
}

int pre(nums[0]), count(0), result(1);

for(int i = 1; i < nums.size(); ++i) {
if(nums[i] != pre) {
count = 0;
++result;
pre = nums[i];
}
else {
if(count == 0) {
++count;
++result;
}
else {
nums.erase(nums.begin() + i);
--i;
}
}
}

return result;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: