最后更新于5年前
用i划分合法区,即[0:i]为合法区。用另一个指针n一次遍历,元素不超过两次这个条件可以通过与nums[i-2]比较,若n大于nums[i-2]号说明nums[i-2],nums[i-1]之中最多重复两次(最少一次,因为是排序数组),可以将n号放到i位置
[0:i]
nums[i-2]
nums[i-2],nums[i-1]
class Solution: def removeDuplicates(self, nums: List[int]) -> int: i = 0 for n in nums: if i < 2 or n > nums[i-2]: nums[i] = n i += 1 return i