删除有序数组中的重复项
0.审题
非严格递增序列:递增但存在重复
1.快慢指针
def removeDuplicates(self, nums: List[int]) -> int:
#slow记录出现过的数字
slow=0
#fast遍历列表
for fast in range(len(nums)):
#当新数字出现时
if nums[slow]!=nums[fast]:
#slow向前移一格以存储新数字
slow+=1
#将fast处的新数字放入slow移至的格
nums[slow]=nums[fast]
#当没有新数字出现(fast在相同数字区域内移动)
else:
#fast前移直至出现新数字
fast+=1
#返回列表有效长度(最大下标+1)
return slow+1
2.去重排序方法
sorted(set(nums))
#通过遍历方法改变原有的nums列表
for i,x in enumerate(sorted(set(nums))):
nums[i]=x
#输出改变后列表的有效长度
return i+1