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]
ideas: Similar idea with the previous one. Check the A[0] with A[2] if not equal, then assign the value back, or, go the next loop
class Solution {
public:
int removeDuplicates(int A[], int n) {
if(n <= 2 ) return n;
int j = 2;
for(int i = 2 ; i < n; i++)
{
if(A[j - 2] != A[i])
{
A[j++] = A[i];
}
}
return j;
}
};