美文网首页
[leetcode26]删除有序数组中的重复项

[leetcode26]删除有序数组中的重复项

作者: 欢仔_159a | 来源:发表于2023-10-04 09:58 被阅读0次

题目:给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。

考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:

  • 更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。
  • 返回 k

本人的漂亮烂代码:这次竟然能一次通过,看来已经get到双指针要领了。

    def removeDuplicates(self, nums: List[int]) -> int:
        if len(nums) == 0:
            return 0
        elif len(nums) == 1:
            return 1
        elif len(nums) > 1:
            index = 0
            for i in range(1, len(nums)):
                if nums[i] != nums[index]:
                    index += 1
                    nums[index] = nums[i]
            nums = nums[:index+1]
            return index+1

相关文章

网友评论

      本文标题:[leetcode26]删除有序数组中的重复项

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