美文网首页
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