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

2018-04-11  本文已影响0人  Dy1an

问题描述

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

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

猜你喜欢

热点阅读