跳过正文
  1. leetcode 题解/

26_删除有序数组中的重复项

·59 字·1 分钟

类型:数组

    1. 删除有序数组中的重复项 💚

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

    ❓ 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。

    💡 快慢指针遍历交换

    有点像快排里面的双指针 partition。

    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

    时间复杂度:O(n),空间复杂度:O(1)