码迷,mamicode.com
首页 > 编程语言 > 详细

26. 删除排序数组中的重复项

时间:2020-05-04 14:59:43      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:i++   public   class   中间   div   就是   初始   +=   两个指针   

技术图片

 

 用两个指针就行,一个指针i初始时指向头元素,另一个j指向下标为1的元素(所以说,当长度为1时单独判断,长度为1就返回1)

之后,如果i下标的元素等于j下标的元素,j++,假如到了i和j代表的元素不等时,说明i,j中间这些都是重复元素,都是等于nums[i]的元素,此时,nums[i+1]=nums[j],i++。i的值就是值不重复的元素的个数

class Solution {
    public int removeDuplicates(int[] nums) {
        if(nums.length==1)
            return nums.length;
        int length=nums.length;
        int i=0;
        int j=1;
        while(j<length)
        {
            
            if(nums[i]==nums[j])
            {
                //i++;
                //j=i+1;   这样的话,如果刚好遇到前一个数与后一个数相同,就是死循环,所以
                //么一次,j自加1
                j++;
            }
            else
            {
                nums[i+1]=nums[j];
                i=i+1;
                j+=1;

            }
        }
        return i+1;
    }
}

  

26. 删除排序数组中的重复项

标签:i++   public   class   中间   div   就是   初始   +=   两个指针   

原文地址:https://www.cnblogs.com/lzh1043060917/p/12826367.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!