题目:
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]
.
class Solution {
public:
int removeDuplicates(int A[], int n) {
if(n == 0)
return 0;
if(n == 1)
return 1;
int length = 2;
for(int i = 2; i < n; i++) {
if(A[i] != A[length-1] || (A[i] == A[length-1] && A[i] != A[length-2])) {
A[length] = A[i];
length++;
}
}
return length;
}
};