首页 > 编程语言 > 详细

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

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

技术分享图片

 

 用两个指针就行,一个指针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. 删除排序数组中的重复项

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!