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

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

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

class Solution:
    def FindNumsAppearOnce(self , array ):
        #1)用位运算的方法:
        xor=0
        for i in array:
            xor=xor^i
        
        flag=1
        while((xor&flag)==0):
            flag=flag<<1
        
        res=0
        res2=0
        #分组进行异或操作--分治思想:
        for i in array:
            if i&flag:
                res=res^i
            else:
                res2=res2^i
        
        if res<res2:
            return [res,res2]
        else:
            return [res2,res]
        # write code here

全部评论

相关推荐

10-07 23:57
已编辑
电子科技大学 Java
八街九陌:博士?客户端?开发?啊?
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-24 20:55
阿里国际 Java工程师 2.7k*16.0
程序员猪皮:没有超过3k的,不太好选。春招再看看
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务