package leetcode; public class demo_80 { public int removeDuplicates(int[] nums) { int count=1; int length=nums.length; for(int i=1;i<length;i++) { //判断重复的个数 if(nums[i]==nums[i-1]) { count=count+1; } else { //将之后的数往前移动 if(count>2) { for(int j=i;j<length;j++) { nums[j-(count-2)]=nums[j]; } //记录数组长度 length=length-(count-2); //记录当前数组开始的位置 i=i-(count-2); } count=1; } } //如果最后面的数据重复个数也大于2,但没有数据替换,所以也要减去重复的个数 if(count>2) {length=length-(count-2);} System.out.println(length); return length; } public static void main(String[] args) { // TODO Auto-generated method stub demo_80 d80=new demo_80(); int[] nums= {0,0,0,1,1,1,2,3,3}; d80.removeDuplicates(nums); } }
原文:https://www.cnblogs.com/Yshun/p/14902442.html