Remove Duplicates from Sorted Array II
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]
.
算法解析:
该题是上一题的扩展,上题要求只保存一个相同的元素。这一题则要求保存两个相同的元素,则转化为A[i]位置的元素不得与A[i-2]位置的元素相同。
Code:
int removeDuplicates(int A[],int n){
if(n<=2) return n;
int index=2;
for(int i=2;i<n;i++){
if(A[i]!=A[index-2])
A[index++]=A[i];
}
}