双指针秒杀数组去重

双指针算法原理

双指针算法通过维护两个指针(通常称为快指针和慢指针)在数组中协同工作。快指针用于遍历数组,慢指针用于标记有效元素的边界。该算法能在O(n)时间复杂度内完成操作,空间复杂度为O(1)。

问题分析(LeetCode 26题)

给定一个升序排列的数组,要求原地删除重复元素,使每个元素只出现一次,并返回新数组的长度。操作需保证空间复杂度为O(1),即不借助额外数据结构。

算法实现步骤

初始化慢指针slow为0,快指针fast从1开始遍历数组。
nums[fast]不等于nums[slow]时,将slow右移一位,并将nums[fast]的值赋给nums[slow]
遍历结束后,slow + 1即为新数组长度。

def removeDuplicates(nums):
    if not nums:
        return 0
    slow = 0
    for fast in range(1, len(nums)):
        if nums[fast] != nums[slow]:
            slow += 1
            nums[slow] = nums[fast]
    return slow + 1

边界条件处理

空数组直接返回0。
数组长度为1时无需处理,直接返回1。

复杂度分析

时间复杂度:O(n),仅需一次线性遍历。
空间复杂度:O(1),仅使用常量级额外空间。

变体与扩展

若允许元素最多出现k次,可将条件改为nums[fast] != nums[slow - k + 1]。例如k=2时:

def removeDuplicatesK(nums, k=2):
    slow = k - 1
    for fast in range(k, len(nums)):
        if nums[fast] != nums[slow - k + 1]:
            slow += 1
            nums[slow] = nums[fast]
    return slow + 1

BbS.okacop010.info/PoSt/1120_630148.HtM
BbS.okacop011.info/PoSt/1120_531718.HtM
BbS.okacop012.info/PoSt/1120_827025.HtM
BbS.okacop013.info/PoSt/1120_800371.HtM
BbS.okacop014.info/PoSt/1120_111412.HtM
BbS.okacop015.info/PoSt/1120_639013.HtM
BbS.okacop016.info/PoSt/1120_098620.HtM
BbS.okacop017.info/PoSt/1120_544170.HtM
BbS.okacop018.info/PoSt/1120_000639.HtM
BbS.okacop019.info/PoSt/1120_867745.HtM
BbS.okacop010.info/PoSt/1120_593910.HtM
BbS.okacop011.info/PoSt/1120_567356.HtM
BbS.okacop012.info/PoSt/1120_029780.HtM
BbS.okacop013.info/PoSt/1120_243145.HtM
BbS.okacop014.info/PoSt/1120_313153.HtM
BbS.okacop015.info/PoSt/1120_832792.HtM
BbS.okacop016.info/PoSt/1120_060810.HtM
BbS.okacop017.info/PoSt/1120_069697.HtM
BbS.okacop018.info/PoSt/1120_745286.HtM
BbS.okacop019.info/PoSt/1120_527464.HtM
BbS.okacop010.info/PoSt/1120_190043.HtM
BbS.okacop011.info/PoSt/1120_174793.HtM
BbS.okacop012.info/PoSt/1120_271651.HtM
BbS.okacop013.info/PoSt/1120_693781.HtM
BbS.okacop014.info/PoSt/1120_625419.HtM
BbS.okacop015.info/PoSt/1120_322492.HtM
BbS.okacop016.info/PoSt/1120_526284.HtM
BbS.okacop017.info/PoSt/1120_531279.HtM
BbS.okacop018.info/PoSt/1120_141224.HtM
BbS.okacop019.info/PoSt/1120_997475.HtM
BbS.okacop010.info/PoSt/1120_911167.HtM
BbS.okacop011.info/PoSt/1120_780340.HtM
BbS.okacop012.info/PoSt/1120_420283.HtM
BbS.okacop013.info/PoSt/1120_127326.HtM
BbS.okacop014.info/PoSt/1120_311039.HtM
BbS.okacop015.info/PoSt/1120_835795.HtM
BbS.okacop016.info/PoSt/1120_556235.HtM
BbS.okacop017.info/PoSt/1120_146090.HtM
BbS.okacop018.info/PoSt/1120_239737.HtM
BbS.okacop019.info/PoSt/1120_448186.HtM
BbS.okacop010.info/PoSt/1120_598983.HtM
BbS.okacop011.info/PoSt/1120_460596.HtM
BbS.okacop012.info/PoSt/1120_813458.HtM
BbS.okacop013.info/PoSt/1120_739186.HtM
BbS.okacop014.info/PoSt/1120_044842.HtM
BbS.okacop015.info/PoSt/1120_015274.HtM
BbS.okacop016.info/PoSt/1120_019692.HtM
BbS.okacop017.info/PoSt/1120_120440.HtM
BbS.okacop018.info/PoSt/1120_950014.HtM
BbS.okacop019.info/PoSt/1120_972634.HtM
BbS.okacop010.info/PoSt/1120_311116.HtM
BbS.okacop011.info/PoSt/1120_001949.HtM
BbS.okacop012.info/PoSt/1120_417654.HtM
BbS.okacop013.info/PoSt/1120_259183.HtM
BbS.okacop014.info/PoSt/1120_938264.HtM
BbS.okacop015.info/PoSt/1120_783126.HtM
BbS.okacop016.info/PoSt/1120_859464.HtM
BbS.okacop017.info/PoSt/1120_358048.HtM
BbS.okacop018.info/PoSt/1120_749036.HtM
BbS.okacop019.info/PoSt/1120_259401.HtM
BbS.okacop010.info/PoSt/1120_216073.HtM
BbS.okacop011.info/PoSt/1120_328880.HtM
BbS.okacop012.info/PoSt/1120_317214.HtM
BbS.okacop013.info/PoSt/1120_083213.HtM
BbS.okacop014.info/PoSt/1120_157889.HtM
BbS.okacop015.info/PoSt/1120_204556.HtM
BbS.okacop016.info/PoSt/1120_567239.HtM
BbS.okacop017.info/PoSt/1120_747958.HtM
BbS.okacop018.info/PoSt/1120_023282.HtM
BbS.okacop019.info/PoSt/1120_274981.HtM
BbS.okacop010.info/PoSt/1120_210632.HtM
BbS.okacop011.info/PoSt/1120_538238.HtM
BbS.okacop012.info/PoSt/1120_615089.HtM
BbS.okacop013.info/PoSt/1120_269141.HtM
BbS.okacop014.info/PoSt/1120_033448.HtM
BbS.okacop015.info/PoSt/1120_801895.HtM
BbS.okacop016.info/PoSt/1120_571702.HtM
BbS.okacop017.info/PoSt/1120_930472.HtM
BbS.okacop018.info/PoSt/1120_272884.HtM
BbS.okacop019.info/PoSt/1120_433492.HtM

#牛客AI配图神器#

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务