去重的特点在于排序,相邻的两个数相同就可以去重复了。
1.去掉目标值
2.去掉重复数
3.去掉重复次数大于N的数
------------------------------------------------------------
实现:1,2 有个共同点就是匹配后,获取当前总的重复数,然后后面的移动位置A[i-count]=A[i];
3.控制就在于向后面直接计算 (向后的话移动后不好计算)
public int removeDuplicates(int[] A) { int length=A.length; if(length<=2) return length; int count=0; for(int i=0;i=0){ A[A.length-2-count]=A[A.length-2]; A[A.length-1-count]=A[A.length-1]; } for(int i=count;i>0;i--){ A[length-i]=0; } return length-count; }