[LeetCode] 80. Remove Duplicates from Sorted Array II
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.
把有序數組中次數超過2的元素多餘的去掉,保證每個元素不超過2次重複。
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int len = nums.size();
if (len == 0) return 0;
int cnt = 1;
int last = nums[0];
vector<int> res(1, last);
for (int i=1; i<len; ++i) {
if (nums[i] == last) {
cnt += 1;
if (cnt > 2) continue;
} else {
cnt = 1;
last = nums[i];
}
res.push_back(nums[i]);
}
nums = res;
return res.size();
}
};