80. 删除排序数组中的重复项 II

https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array-ii/

解法一:

用i划分合法区,即[0:i]为合法区。用另一个指针n一次遍历,元素不超过两次这个条件可以通过与nums[i-2]比较,若n大于nums[i-2]号说明nums[i-2],nums[i-1]之中最多重复两次(最少一次,因为是排序数组),可以将n号放到i位置

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

最后更新于