首先在新年的开始,祝大家新年快乐!万事如意!
过了个元旦,出去滑雪了,感觉还挺好玩的,以后有机会还去玩。玩的结果就是我好像很久没有做题了,我也不知道自己欠了多少了,不管那么多,先所刷几道题再说。
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])
感觉使用枚举,代码不够简便,而且效率也没我使用的方法好。