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.empty())
return 0;
int count = 1;
for (vector<int>::iterator it = nums.begin()+1;it != nums.end();it++) {
if (*it == *(it - 1) && count < 2)
count++;
else if(*it==*(it-1)){
it = nums.erase(it);
--it;
}
else {
count = 1;
}
}
return nums.size();
}
};