您的当前位置:首页正文

26.leetcode题目讲解(Python):删除排序数组中的

来源:华拓网
题目

这道题比较简单,值得注意的是空间复杂度的要求。这里提供两种解法,第一种解法效率比较差,但没有用另外的list。第二章解法利用set进行去重,效率比较高。

参考代码如下:

class Solution:
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        if len(nums) == 0 or len(nums) == 1:
            return len(nums)
        i = 1
        while i < len(nums):
            if nums[i] == nums[i-1]:
                nums.remove(nums[i])
                continue
            i = i + 1

        return len(nums)


class Solution2:
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        l = sorted(list(set(nums)))
        if len(l):
            for i in range(0, len(l)):
                nums[i] = l[i]
        return len(l)