此题采用双指针i,j,如果前值等于后值,则让后指针向后找到不同的值。如果后指针溢出,则退出循环
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
i=0
j=1
if len(nums)==0:
return 0
if len(nums)==1:
return 1
while True:
if nums[i]==nums[j]:
j=j+1
else:
nums[i+1]=nums[j]
i+=1
j+=1
if j==len(nums):
break
return i+1