题目描述:
Follow up for "Remove Duplicates":
What if duplicates are allowed at most twice?
For example,
Given sorted array A = [1,1,1,2,2,3]
,
Your function should return length = 5
,
and A is now [1,1,2,2,3]
.
这题和#100基本上一样,就是增加了一个判断条件而已。
Mycode(AC = 43ms):
class Solution {
public:
/**
* @param A: a list of integers
* @return : return an integer
*/
int removeDuplicates(vector<int> &nums) {
// write your code here
if (nums.size() <= 2) return nums.size();
int idx = 1;
for (int i = 2; i < nums.size(); i++) {
if (nums[i] == nums[idx] && nums[i] == nums[idx - 1]) {
continue;
}
else {
nums[idx + 1] = nums[i];
idx++;
}
}
return idx + 1;
}
};