您的位置:首页 > 其它

80. Remove Duplicates from Sorted Array II

2017-02-10 21:29 393 查看
problem:

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.
思路是只保存最后两个重复的元素,所以对nums进行循环,若和两位后的数据不一样,则保存下来,否者不操作。

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

vector<int> temp;
for(int i=0; i<nums.size()-2; i++)
{
if(nums[i] != nums[i+2])
{
temp.push_back(nums[i]);
result++;
}

}
temp.push_back(nums[nums.size()-2]);
temp.push_back(nums[nums.size()-1]);
nums = temp;
return result+2;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: