问题描写叙述:
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].
基本思路:
与Remove Duplicates from Sorted Array方法类似。 能够參看《Remove Duplicates from Sorted Array》。
代码:
int removeDuplicates(int A[], int n) { //C++
if(n <=2)
return n;
int newp = 1, times = 0;
for(int i = 1; i < n; i++)
{
if(A[i] == A[i-1])
{
if(times == 0)
{
A[newp] = A[i];
newp++;
times++;
}
}
else
{
times = 0;
A[newp] = A[i];
newp++;
}
}
return newp;
}