题目:给定一个排序数组,原地删除重复出现的元素,返回移除后数组的新长度
法:快慢指针,快指针遍历数组,然后比较nums[fast]与nums[slow]
1)如果不同的话,把nums[slow+1]=nums[fast],然后快慢指针同时后移一个
2)相同的话,证明是重复出现的元素,只后移fast
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
length=len(nums)
if length<=1:return length
slow,fast=0,1
while fast<length:
if nums[fast]!=nums[slow]:
slow+=1
nums[slow]=nums[fast]
fast+=1
else:
fast+=1
return slow+1