赞
踩
学习双指针的应用
算法
nums[i]==nums[j],则
c
o
u
n
t
+
1
count+1
count+1。nums[i] != nums[j],说明遇到了新元素,则我们更新
c
o
u
n
t
=
1
count = 1
count=1,并且将该元素移动到
j
j
j 位置,并同时增加
i
i
i 和
j
j
j。 当数组遍历完成,则返回
j
j
j。class Solution: def removeDuplicates(self, nums: List[int]) -> int: j = 0 # slow count = 1 # 当前这个数出现的次数,第一个数就是出现了一次 for i in range(1, len(nums)): if nums[i] == nums[j]: count += 1 if count <= 2: j += 1 nums[j] = nums[i] else: # 从1开始计数 count = 1 j += 1 nums[j] = nums[i] return j+1

复杂度分析
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。