leetcode——80.删除排序数组中的重复项2

自己做出来效果并不是很好:

class Solution:
    def removeDuplicates(self, nums) -> int:
        i=0
        while i<len(nums)-2:
            j,k=i+1,i+2
            if nums[i]==nums[j]:
                if nums[j]==nums[k]:
                    nums.pop(k)
                else:
                    i,j=i+2,j+2
            else:
                i,j=i+1,j+1
        return len(nums)
执行用时 :104 ms, 在所有 Python3 提交中击败了23.37%的用户
内存消耗 :13.9 MB, 在所有 Python3 提交中击败了5.08%的用户
 
看看人家执行用时40ms的例子:
class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        c=1
        n=len(nums)
        if n<=2:
            return n
        
        for i in range (2,n):
            if nums[i]!=nums[c-1]:
                c=c+1
                nums[c]=nums[i]
        return c+1

                                                        ——2019.10.8

 
 

猜你喜欢

转载自www.cnblogs.com/taoyuxin/p/11636442.html