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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 给定一个有序数组,你需要原地删除其中的重复内容,使每个元素只出现一次,并返回新的长度。不要另外定义一个数组,您必须...
    WindMajor阅读 2,701评论 1 0
  • 给定一个有序数组,你需要原地删除其中的重复内容,使每个元素只出现一次,并返回新的长度。 不要另外定义一个数组,您必...
    拉面小鱼丸阅读 5,141评论 1 0
  • 从排序数组中删除重复项 给定一个有序数组,你需要原地删除其中的重复内容,使每个元素只出现一次,并返回新的长度。 不...
    韦弦Zhy阅读 6,828评论 9 3
  • 茫茫人生路上,我也只是一粒尘埃。谁离了我都能过,而我也是,离了谁都能活。所以,我们应该为自己而活。 有的人,终其一...
    祁晓青阅读 2,732评论 0 0
  • 感觉自己成熟的太晚了,当别人开始为将来打算时 我仍沉浸在自己的想象世界里。当别人把自己的生活安排的井井有条时,我面...
    假装溺水的鱼阅读 2,713评论 2 0

友情链接更多精彩内容