/**
* RemoveDuplicate from sorted ArrayII
* 题意:删除重复的元素,且重复最多允许重复两次
* 例如:[1,1,1,2,2,3]->[1,1,2,2,3]返回5
* 思路:
* index代表记录重复的个数,当index<=2的时候,说明这会有两个数,这两数是连续的重复的
* num用来记录最终去重复后合理的下标
*
* @author lying
*
*/
public class RemoveDuplicatefromsortedArrayII {
public static int removeDuplicateII(int[] A){
if(A.length==0){
return 0;
}
int index=1;//记录重复的个数
int num=1;//用来记录最终去重复后合理的下标
for(int i=1;i<A.length;i++){//后一个元素不等于前一个元素的时候,这时候把index置为1让他从新开始记录
index= A[i]==A[i-1]?index+1:1;
if(index<=2){//说明这会有两个数,这两数是连续的重复的
A[num]=A[i];//就把当前元素付值给我们想要排好的合理下标对应的元素上
num++;
}
}
return num;
}
}
RemoveDuplicate from sorted ArrayII
最新推荐文章于 2022-05-06 00:11:21 发布