第八天-补打卡

132 阅读1分钟

首先在新年的开始,祝大家新年快乐!万事如意!
过了个元旦,出去滑雪了,感觉还挺好玩的,以后有机会还去玩。玩的结果就是我好像很久没有做题了,我也不知道自己欠了多少了,不管那么多,先所刷几道题再说。

直接上解题代码:

class Solution(object):
    def removeDuplicates(self, nums):
        if len(nums) == 0 :
            return 0
        is_tihan = 0
        for i in range(1, len(nums)):
            if nums[is_tihan] != nums[i]:
                is_tihan = is_tihan + 1 
                nums[is_tihan] = nums[i]
        return is_tihan + 1

我是通过循环,将标志位(is_tihan)的数字与当前数字做比较,如果不相等,则将当前i下标的数字赋值给标志位下一位(is_tihan + 1)。
看了一下其他人的解题方式,很多人使用枚举(enumerate)方法,代码如下:

class Solution(object):
    def removeDuplicates(self, nums):
        if not len(nums):
            return len(nums)
        tmp = nums[0]
        index = 0
        for i, v in enumerate(nums):
            if tmp == v:
                continue
            else:
                nums[index] = tmp
                tmp = v
                index += 1
        nums[index] = tmp
        return len(nums[:index+1])

感觉使用枚举,代码不够简便,而且效率也没我使用的方法好。