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]
.
下面是一个不需要用Hash的简单作法,重点是要在原数据集上修改:
public class Solution {
public int removeDuplicates(int[] A) {
if (A == null || A.length == 0) {
return 0;
}
int size = 0;
for (int i = 1; i < A.length; i++) {
if (A[i] == A[size] && size > 0 && A[size-1] == A[size]) {
continue;
}
A[++size] = A[i];
}
return size + 1;
}
}