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].
相关问题1:压缩字符串
相关问题2:Remove Duplicates from Sorted Linked List 从排序链表中去掉重复值
相关问题3:[LeetCode] Remove Duplicates From Sorted Array I
代码:
int removeDuplicates(int A[], int n) {
if(n==0) return 0;
if(n==1) return 1;
int count = 1;
int i=0, j=1;
for(j=1; j<n; j++)
{
if(A[j]==A[j-1])
count++;
else
{
if(count==1)
{
A[i]=A[j-1];
i++;
}
else if(count>1)
{
A[i]=A[j-1];
A[i+1] = A[j-1];
i++;
i++;
count=1;
}
}
}
if(count==1)
{
A[i]=A[j-1];
i++;
}
else if(count>1)
{
A[i]=A[j-1];
A[i+1] = A[j-1];
i++;
i++;
}
return i;
}