def removeDuplicates(nums):
if not nums: # 如果数组为空,直接返回
return 0
i = 0 # 慢指针,用于记录不重复元素的位置
for j in range(1, len(nums)): # 快指针,遍历整个数组
if nums[j] != nums[i]: # 如果出现不同的元素
i += 1 # 慢指针加一
nums[i] = nums[j] # 将不同的元素放到慢指针所在位置
return i + 1 # 返回长度def removeDuplicates(nums):
nums[:] = sorted(set(nums)) # 将有序数组转为集合去重,再排序后转回为列表
return len(nums) # 返回长度import itertools
def removeDuplicates(nums):
nums[:] = [k for k, _ in itertools.groupby(nums)] # 对有序数组进行分组,取每组的第一个元素
return len(nums) # 返回长度