https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
用最直接的思路,扫描整个数组,遇到重复值就跳过,非重复值直接复制到前面。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| class Solution { public int removeDuplicates(int[] nums) { int numsLength=nums.length; if(numsLength<=1){ return numsLength; } int nowPosition=1; int nowNum=nums[0]; for(int i=1;i<numsLength;i++){ if(nums[i]!=nowNum){ nowNum=nums[i]; nums[nowPosition]=nums[i]; nowPosition++; } } return nowPosition; } }
|
还可以将变量简化一下,只用一个循环外的值就可以了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| class Solution { public int removeDuplicates(int[] nums) { if(nums.length<=1){ return nums.length; } int nowId=0; for(int i=1;i<nums.length;i++){ if(nums[i]!=nums[nowId]){ nowId++; nums[nowId]=nums[i]; } } return nowId+1; } }
|