1、删除排序数组中的重复项

发布于 2022年 02月 15日 18:54

给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。

    public int removeDuplicates(int[] nums) {
        if (nums.length == 0) return 0;
        int pre = 0;
        int suf = 1;
        while(suf < nums.length){
            if(nums[pre] != nums[suf]){
                nums[pre + 1] = nums[suf];
                pre++;
            }
            suf++;
        }
        return pre + 1;
    }

解题思路:双指针解法。有点像插入排序,不过每次都插入到已排序部分的最后,时间复杂度O(n)

推荐文章