题解 | #数组中只出现一次的两个数字#

数组中只出现一次的两个数字

http://www.nowcoder.com/practice/389fc1c3d3be4479a154f63f495abff8

解释放在这个链接里了。

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param array int整型一维数组 
# @return int整型一维数组
#
class Solution:
    def FindNumsAppearOnce(self , array) :
        # write code here
        tmp = 0
        for num in array:
            tmp ^= num
        # 找到最低位的1
        group = 1
        while group & tmp == 0:
            group = group << 1
        # 分组寻找两个只出现过一次的数
        tmp1 = 0 ; tmp2 = 0
        for num in array:
            if num & group == 0:
                tmp1^=num
            else:
                tmp2^=num
        return sorted([tmp1,tmp2])

array = [1,4,1,6]
print(Solution().FindNumsAppearOnce(array))

全部评论

相关推荐

07-02 10:44
门头沟学院 C++
码农索隆:太实诚了,告诉hr,你能实习至少6个月
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
今天 14:35
点赞 评论 收藏
分享
Twilight_m...:经典我朋友XXXX起手,这是那种经典的不知道目前行情搁那儿胡编乱造瞎指导的中年人,不用理这种**
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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