LeetCode OJ 系列之26 Remove Duplicates from Sorted Array --Python

Problem:

Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.

Do not allocate extra space for another array, you must do this in place with constant memory.

For example,
Given input array nums = [1,1,2],

Your function should return length = 2, with the first two elements of nums being 1 and 2 respectively. It doesn't matter what you leave beyond the new length.

Answer:

class Solution(object):
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        if len(nums) == 0: return len(nums)
        last = nums[-1]
        for index in range(len(nums)-2,-1,-1):
            if last == nums[index]: del nums[index]
            else: last = nums[index]
        return len(nums)
Note:

由于OJ对空间有要求,不允许重新创建新的列表,在实际使用过程中,其实有更加简单的方法:

将给定List转化为Set类型,即可自动消除其中的重复元素。

class Solution(object):
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        return len(set(nums))



阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ln152315/article/details/49909647
文章标签: LeetCode Python OJ
个人分类: LeetCode Python
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭