#解1class Solution: def removeDuplicates(self, nums: List[int]) -> int: i = 1 while i < len(nums): while i < len(nums) and nums[i] == nums[i-1]: del nums[i] i += 1 return len(nums)#解2 用指针(下标),时间复杂度贼小 class Solution: def removeDuplicates(self, nums: List[int]) -> int: if not nums: return 0 n = len(nums) fast = slow = 1 while fast < n: if nums[fast] != nums[fast - 1]: nums[slow] = nums[fast] slow += 1 fast += 1 return slow#解2.5 我写的仿照上面的,不知道为什么时间复杂度低一点class Solution: def removeDuplicates(self, nums: List[int]) -> int: slow = 1; fast = 1 while fast < len(nums): if nums[fast] == nums[fast-1]: fast += 1 else: nums[slow] = nums[fast] fast += 1 slow += 1 return slow