Skip to main content
  1. Posts/

LeetCode-80 删除有序数组中的重复项 II

·1 min·

LeetCode-80 删除有序数组中的重复项 II #

Solution 1 #

使用双指针来进行原地修改. $l$ 是待修改位置, $r$ 是目前遍历到的元素的位置. 如果 $nums[r] == nums[l - 2]$ , 那么当前的元素不应该被填入; 否则应该填入.

代码如下:

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        n = len(nums)
        if n <= 2:
            return n
        l, r = 2, 2
        while r < n:
            if nums[l - 2] != nums[r]:
                nums[l] = nums[r]
                l += 1    
            r += 1
        return l