从已经排好序的数组除去重复元素
想法是倒着看。
1 public class Solution { 2 public int removeDuplicates(int[] nums) { 3 int i,j,count=0; 4 for(i=nums.length-1;i>0;i--) 5 { 6 7 if(nums[i]==nums[i-1]) 8 { 9 10 for(j=i;j<nums.length-count-1;j++) 11 nums[j]=nums[j+1]; 12 count++; //重点还是在于,起始j ,长度,count的位置 是++ 还是—-。
13 } 14 } 15 return nums.length-count; 16 } 17 }
还有就是移动的位置,因为i=i-1所以,从i后面把i覆盖即可。
下回得记得计时==
---------------------------170122第二次整理
几个点需要注意:
·排好序的
·不可申请额外空间---说明不能new set
·因为需要移动数组,所以从后面显然移动的会变少
------依然不能自主做出来