问题描写叙述:
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; }