找出数组中不重复的数-python

本文介绍了两种算法来找出数组中唯一的非重复元素:一种适用于数组中只有一个唯一元素的情况,通过异或操作实现;另一种适用于有多个唯一元素的情况,通过哈希映射计数并筛选出计数为1的元素。

1.数组中不重复的数只有一个,初始值为0,然后直接遍历数组,让每个值与初始值进行异或,得出的最终值就是要找的结果:

# Your Code Here
    single = 0
    for v in data:
        single=single^v
    return single
# End Your Code

2.数组中不重复的数大于一个,则可以遍历一次数组,使用一个map记录数与数出现的次数;接着,再遍历一次map,找出次数为1的数,即为我们要找的数:

# Your Code Here
    single = 0
    Map = {}
    for i in range(len(data)):
        if data[i] in Map:
            Map[data[i]] += 1
        else:
            Map[data[i]] = 1
    for key in Map:
        if Map[key] == 1:
            single = key
            break
    return single
# End Your Code

 

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值