题解 | #数组中只出现一次的数(其它数出现k次)#

数组中只出现一次的数(其它数出现k次)

https://www.nowcoder.com/practice/5d3d74c3bf7f4e368e03096bb8857871

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param arr int整型一维数组 
# @param k int整型 
# @return int整型
#
class Solution:
    def foundOnceNumber(self , arr: List[int], k: int) -> int:
        out=[0 for _ in range(32)]
        weight=1
        for i in range(32):
            cur=0
            for num in arr:
                if num&weight>0:
                    cur=cur+1
            weight=weight<<1
            cur=cur%k
            out[31-i]=cur
        s=0
        weight=1
        if out[0]==1:
            for i in range(31,-1,-1):
                s=s+(1-out[i])*weight
                weight=weight<<1
            s=-s-1
        else:
            for i in range(31,-1,-1):
                s=s+out[i]*weight
                weight=weight<<1
        return s
            

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务