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]
.
public class Solution { public int removeDuplicates(int[] A) { int n = A.length; if (n == 0) return 0; int pos = 0; int dup = 0; for (int i = 1; i < n; i++) if (A[i] != A[pos]) { A[++pos] = A[i]; dup = 0; } else if (dup < 1) { A[++pos] = A[i]; dup++; } else dup++; return pos+1; } }
No comments:
Post a Comment