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].
int removeDuplicates(int A[], int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(n<=2 || A==NULL)return n;
int res = 1;
int pre = A[0];
bool twice = false;
for(int i=1;i<n;i++)
{
if(A[i]==pre && twice)
continue;
else if(A[i]==pre)
{
A[res] = A[i];
res++;
twice=true;
}else{
A[res]=A[i];
res++;
pre = A[i];
twice = false;
}
}
return res;
}

788

被折叠的 条评论
为什么被折叠?



