【LeetCode】26.删除排序数组中的重复项 (简单 数组)

在这里插入图片描述
放两个指针 i i , j j , j j 负责遍历整个数组, i i 负责存储不重复的元素
例如数组[1,1,2]:

0 1 2 情况
1 1 2 n[i]==n[j]
i j
1 1 2
i j j++
1 1 2 n[i]!=n[j]
i j i++
1 2 2 赋值n[i]=n[j]
i j 此时i=1,输出长度(i+1)

java代码:

class Solution {
    public int removeDuplicates(int[] nums) {
        int i=0,j=0;
        if(nums.length<=1){
            return 1;
        }
        while(j<nums.length){
            if(nums[i]==nums[j]){
                j++;
            }
            else{
                i++;
                nums[i]=nums[j];
                j++;
            }
        }
       return i+1; 
    }
}

在这里插入图片描述
(看了评论才知道这种方法叫双指针法)

发布了125 篇原创文章 · 获赞 56 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/Nicht_sehen/article/details/102877429