LeetCode 26 [Remove Duplicates from Sorted Array]

原题

给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度。
不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。

样例
给出数组A =[1,1,2],你的函数应该返回长度2,此时A=[1,2]

解题思路

  • 使用一个指针length记录当前位置,即该写入到哪里
  • 使用一个prev记录之前的值,每次比较:
  • 如果与之前的值不同,把当前值写入length的位置,length += 1
  • 如果与之前值相同,继续

完整代码

class Solution(object):
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        prev = None
        length = 0
        for num in nums:
            if num != prev:
                prev = num
                nums[length] = num
                length += 1
        return length
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容