美文网首页
LeetCode--从排序数组中删除重复项

LeetCode--从排序数组中删除重复项

作者: sjandroid | 来源:发表于2018-07-18 19:26 被阅读0次

题目:

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 "不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成"。

实现

    private static int removeDuplicates(int[] nums) {
        if(nums == null || nums.length == 0){
            return 0;
        }

        int num = 1;
        int sameIndex = -1;
        int maxNum = nums[0];

        for(int i = 0; i < nums.length - 1; i++){
            if(maxNum >= nums[i + 1] && sameIndex < 0){
                sameIndex = i + 1;

            } else if(maxNum < nums[i + 1] && sameIndex >= 0){
                nums[sameIndex] = nums[i + 1];

                maxNum = nums[sameIndex];
                i = sameIndex - 1;

                sameIndex = -1;
                num++;
            } else if(maxNum < nums[i + 1]){
                maxNum = nums[i + 1];

                num++;
            }
        }

        return num;
    }

相关文章

  • 数组

    26 删除排序数组中的重复项 使用双指针的做法,删除排序数组中的重复项其实就是找出排序数组中的非重复项,两个指针,...

  • leecode刷题(1)-- 删除排序数组中的重复项

    leecode刷题(1)-- 删除排序数组中的重复项 删除排序数组中的重复项 给定一个排序数组,你需要在原地删除重...

  • LeetCode--从排序数组中删除重复项

    题目: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 "不要...

  • LeetCode基础算法-数组

    LeetCode基础算法-数组 算法 LeetCode 数组相关 1. 从排序数组中删除重复项 描述:给定一个排序...

  • leetcode 初级算法 数组(C++)

    初级算法 数组 1.从排序数组中删除重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一...

  • 数组-请你 原地 删除重复出现的元素

    数组是我们用到最多的 删除排序数组中的重复项

  • 2018-07-08

    数组 问题1. 从排序数组中删除重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,...

  • 从排序数组中删除重复项

    从排序数组中删除重复项,给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的...

  • 2018年8月 leetcode刷题(初级算法数组)

    从排序数组中删除重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的...

  • leetcode 探索-初级算法 数组 从排序数组中删除重复项

    从排序数组中删除重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的...

网友评论

      本文标题:LeetCode--从排序数组中删除重复项

      本文链接:https://www.haomeiwen.com/subject/yxeapftx.html