Leetcode-#26从排序数组中删除重复项(数组)

问题描述

给定一个有序数组,你需要原地删除其中的重复内容,使每个元素只出现一次,并返回新的长度。

不要另外定义一个数组,您必须通过用 O(1) 额外内存原地修改输入的数组来做到这一点。

解答方法

这是一个数组问题,先没有注意到数组是有序的,被报了超时。

class Solution:
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        i=len(nums)
        while i>0:
            if nums[i-1] in nums[0:i-1]:
                nums.pop(i-1)
            i=i-1
        return len(nums)

后面发现数组是有序的后,改进的代码为:

class Solution:
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        i=len(nums)
        if i == (0 or 1):
            return i
        while i>1:
            if nums[i-1] ==nums[i-2]:
                nums.pop(i-1)
            i=i-1
        return len(nums)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 给定一个有序数组,你需要原地删除其中的重复内容,使每个元素只出现一次,并返回新的长度。不要另外定义一个数组,您必须...
    WindMajor阅读 354评论 1 0
  • 给定一个有序数组,你需要原地删除其中的重复内容,使每个元素只出现一次,并返回新的长度。 不要另外定义一个数组,您必...
    拉面小鱼丸阅读 1,370评论 1 0
  • 从排序数组中删除重复项 给定一个有序数组,你需要原地删除其中的重复内容,使每个元素只出现一次,并返回新的长度。 不...
    韦弦Zhy阅读 2,347评论 9 3
  • 回到北京一个多月了,还是摆脱不了对蔬菜沙拉的执念。 肯德基的蔬菜还满新鲜,但是全然称不上美味,不如说无味。 突如其...
    JanelEyre阅读 336评论 0 1
  • 茫茫人生路上,我也只是一粒尘埃。谁离了我都能过,而我也是,离了谁都能活。所以,我们应该为自己而活。 有的人,终其一...
    祁晓青阅读 353评论 0 0