美文网首页
2019-05-18LeetCode26. 删除排序数组中的重复

2019-05-18LeetCode26. 删除排序数组中的重复

作者: mztkenan | 来源:发表于2019-05-18 14:27 被阅读0次

40min

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        if(len(nums)==1 or len(nums)==0):return len(nums)
        i,cur=0,0
        while(i<len(nums)-1):
            if(nums[i]!=nums[i+1] or i==len(nums)-2):
                nums[cur]=nums[i]
                cur+=1
            i+=1
        if(nums[i]!=nums[i-1]):nums[cur]=nums[i]
        else:cur-=1
        return cur+1

1.由于要比较i与i+1,所以需要考虑边界情况,边界t与t-1相等与不等是两种不同情况,难点在于边界条件的考虑,还有只有一个数字的情况

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        if(len(nums)==1 or len(nums)==0):return len(nums)
        i,cur=0,0
        while(i<len(nums)-1):
            if(nums[i]!=nums[i+1]):
                nums[cur]=nums[i]
                cur+=1
            i+=1
        if(nums[i]!=nums[cur-1]):nums[cur]=nums[i]
        return cur+1

不使用前后比较,而对cur和i比较,不需要考虑临界情况,简直太爽,4min

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

相关文章

网友评论

      本文标题:2019-05-18LeetCode26. 删除排序数组中的重复

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