题目:
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]
.
分析:
1.可以加一个变量来记录重复元素的个数。
2.如果数组不是排好序的,可以利用hashmap来记录元素的个数。
public class Solution { public int removeDuplicates(int[] A) { if(A==null || A.length==0) return 0; int index=0; int count=0; for(int i=1;i<A.length;i++) { if(A[index]!=A[i]) { A[++index]=A[i]; count=0; } else if(count<1) { A[++index]=A[i]; count++; } } return index+1; } }