26. Remove Duplicates from Sorted Array

题目链接: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 }

 

posted @ 2019-05-08 15:11  王爷爱吃秋刀鱼  阅读(69)  评论(0编辑  收藏  举报