26 Remove Duplicates from Sorted Array

本文介绍了一个使用双指针技术去除有序数组中重复元素的方法,通过慢指针k和快指针x的配合,实现了高效地统计并去除重复元素。此方法在保证数组前k个元素有序且不重复的同时,具有较低的时间复杂度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

def removeDuplicates(nums):
    leng = len(nums)
    k = 0
    #if leng ==0:
    #return False
    for x in range(1,leng) :
        print(k,x)
        print(nums)
        if nums[k] != nums[x]:
            k=k+1
            nums[k] = nums[x]
            
    print(k+1)

nums = [0,0,1,1,1,2,2,3,3,4]
removeDuplicates(nums)

非常好玩的双指针的题目,一开始的想法是转set然后直接len()调用一下解决,

时间复杂度度为O(1),且提供的是有序数列

k为慢指针,负责统计个数

x为快指针,负责遍历数组

在两者不同的时候,k前进一格,进入下一阶段,保证前k个是有序且不重复的

转载于:https://www.cnblogs.com/fan-2/p/10257729.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值