美文网首页
python实现leetcode之80. 删除有序数组中的重复项

python实现leetcode之80. 删除有序数组中的重复项

作者: 深圳都这么冷 | 来源:发表于2021-09-13 17:34 被阅读0次

解题思路

这题很简单
ahead指向第一个未处理单词
curr指向最后一个已经处理的保留单词
clear表示是不是已经重复过一次了
然后一遍扫描

80. 删除有序数组中的重复项 II

代码

class Solution(object):
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        curr, ahead, clear = 0, 1, False
        while ahead < len(nums):
            if nums[ahead] != nums[curr]:
                curr += 1
                nums[curr] = nums[ahead]
                ahead += 1
                clear = False
            elif not clear:  # repeat once
                curr += 1
                nums[curr] = nums[ahead]
                ahead += 1
                clear = True
            else:   # repeat more than once
                ahead += 1
        return curr + 1
效果图

相关文章

网友评论

      本文标题:python实现leetcode之80. 删除有序数组中的重复项

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