您的位置:首页 > 其它

leetcode——80——Remove Duplicates from Sorted Array II

2016-04-19 17:22 489 查看
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.

不考虑数组排过序
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if(nums.size() < 3) return nums.size();
int len = 1;
int n = 1;
for(int i = 1; i < nums.size(); i++){
if(nums[i] != nums[i - 1]){
nums[len++] = nums[i];
n = 1;
}
else if(n == 1){
nums[len++] = nums[i];
n++;
}
else
continue;
}
return len;

}
};

考虑数组已排序
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int n = nums.size();
if(n < 3)
return n;
int index = 2;
for(int i = 2; i < n; i ++)
{
if(nums[i] != nums[index-2])
nums[index ++] = nums[i];
}
return index;

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