在原数组中删除重复的元素 | Python

在原数组中删除重复元素:假设 nums = [1,1,1,2,2,3,3,3,3,4]; 经过删除后,得到的结果为:nums=[1, 2, 3, 4]

数组在做增删时,需要借助index,操作起来比较麻烦(相对链表而言更难),个人觉得不适合用for 的方式控制指针运动,而是应当在循环体中控制指针更为容易。

可以先定义一个死循环,然后在循环体内部定义跳出条件。

def dropDuplicate(nums):
    dic = {}
    ptr = 0
    while True:
        if ptr>=len(nums):
            break
        if nums[ptr] in dic:
            nums.pop(ptr)
            ptr-=1
        else:
            dic[nums[ptr]]=1
        ptr+=1
            

if __name__ =="__main__":
    nums = [1,1,1,2,2,3,3,3,3,4]
    dropDuplicate(nums)
    print nums
上述代码中,ptr表示列表的指针,每轮循环指针前进一步,当删除元素时,指针应当停在原处,以便重新判断删除后该位置上的元素是否符合保留的条件。当指针即将发生越界时,提前跳出循环。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值