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]
.
如果不到2次,就赋值A[pos]=A[cur];,
否则cur++;
public class Solution {
public int removeDuplicates(int[] A) {
int len=A.length;
if(len==0) //判断数组为空的情况
return 0;
int pos=0;
int cur=1;
int num=1; //计数
while(cur<len){
if(A[cur]==A[cur-1])
{
num++;
if(num<=2)
{
pos++;
A[pos]=A[cur];
}
}
else
{
num=1;
pos++;
A[pos]=A[cur];
}
cur++;
}
return pos+1;
}
}