Leetcode刷题Python26. 删除有序数组中的重复项

Posted Better Bench

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode刷题Python26. 删除有序数组中的重复项相关的知识,希望对你有一定的参考价值。

1 题目

给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。

2 解析

使用快慢指针。慢指针来指向有序不重复序列的最后一个位置,fast来遍历整个集合。一旦慢指针的元素与快指针的不一致时,将快指针的元素插入到满指针的后一个位置,慢指针往后移动一个位置。





3 Python 实现

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

以上是关于Leetcode刷题Python26. 删除有序数组中的重复项的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode刷题26-简单-删除有序数组中的重复项

leetcode刷题系列 26题 删除排序数组中的重复项

Leetcode刷题100天—26. 删除有序数组中的重复项(数组)—day76

Leetcode刷题100天—26. 删除有序数组中的重复项(数组)—day76

Leetcode刷题Python剑指 Offer 26. 树的子结构

Leetcode刷题笔记之数组篇26. 删除有序数组中的重复项