美文网首页
Leetcode-#26从排序数组中删除重复项(数组)

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

作者: Dy1an | 来源:发表于2018-04-11 13:25 被阅读0次

问题描述

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

不要另外定义一个数组,您必须通过用 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)

相关文章

网友评论

      本文标题:Leetcode-#26从排序数组中删除重复项(数组)

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