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

Posted lzh1043060917

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了26. 删除排序数组中的重复项相关的知识,希望对你有一定的参考价值。

技术图片

 

 用两个指针就行,一个指针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. 删除排序数组中的重复项的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

leetcode26 删除排序数组中的重复项(Easy)

LeetCode 第26题 删除排序数组中的重复项