美文网首页Leetcode刷题笔记
第二十八天 Remove Duplicates from Sor

第二十八天 Remove Duplicates from Sor

作者: 业余马拉松选手 | 来源:发表于2018-09-16 18:35 被阅读9次

    继续刷一道水题,嗯,其实对比之前,已经不是那么水了吧

    https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/description/

    如果没有任何限制,这道题就特别简单了,只要开另外一个空间存一下就好了,但这次是要求原地,那么就需要更好的利用排序这个特性,然后就是开双指针【快慢指针】咯

    i是慢指针,j是快指针,只有nums[i] != nums[j]的时候,i才会往前走一步,这时还需要把nums[j]的值赋给nums[i] ,最终i走了多少步加上1,就是最终需要返回的答案咯

    class Solution:
        def removeDuplicates(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            if len(nums) == 0:
                return 0
            i = 0
            for j in range(1,len(nums)):
                if nums[i] != nums[j]:
                    i+=1
                    nums[i] = nums[j]
            return i+1
    

    有个特别需要注意的就是python里的循环,如果使用range的函数的话,比如range(1,3),是不包括3的,这个要特别注意下,平时用的少,有时候还容易忽略。

    相关文章

      网友评论

        本文标题:第二十八天 Remove Duplicates from Sor

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