题目链接:https://leetcode.com/problems/remove-duplicates-from-sorted-array/
解题思路:
要求对一个排序数组的数字去重,而且不能申请额外的数组,返回不重复的数字。
这个思路比较简单,首先循环从第二个元素开始,如果nums[j]找到一个与nums[i]不等的元素的时候,不重复的个数要+1,通过i来实现。然后nums[i]存的就是不重复的数组,然后继续循环。
然后nums[j]再找到一个与当前nums[i](第二个不等,其实这里的nums已经变了,第二个元素已经是第二个不重复的数字了)。
以1223344为例。
当j=1,走到第1个2,发现不等,nums[1]=2,
当j=2,走到第2个2,不符合if条件
当j=3,走到第一个3,发现不等nums[3]=3,nums[1]=2,执行操作i+1,nums[2]=3,
以此类推
1 class Solution { 2 public int removeDuplicates(int[] nums) { 3 4 5 int i=0; 6 // int index =0; 7 for(int j=1;j<nums.length;j++) 8 { 9 if(nums[j]!=nums[i]) 10 { 11 i++; 12 nums[i] = nums[j]; 13 } 14 } 15 return i+1; 16 } 17 }