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]
.
Solution:
1 public class Solution { 2 public int removeDuplicates(int[] A) { 3 if (A.length==0) return 0; 4 5 int index =0; 6 int count = 0; 7 for (int i=0;i<A.length;i++){ 8 A[index] = A[i]; 9 if (i+1<A.length) 10 if (A[i]!=A[i+1]){ 11 index++; 12 count=0; 13 } else if (count<1){ 14 index++; 15 count++; 16 } 17 18 } 19 return index+1; 20 } 21 }