zoukankan      html  css  js  c++  java
  • NC156 数组中只出现一次的数(其它数出现k次)

    1. 题目

    给定一个长度为  的整型数组  和一个整数  。

    已知  中只有 1 个数出现一次,其他的数都出现  次。
    请返回只出现了 1 次的数。
     
    数据范围:

    复杂度要求:
    时间 
    空间 

    2. 示例

    输入:[5,4,1,1,5,1,5], 3 
    返回值:4

    3. 题解

    方法:位运算

    所有转为二进制,然后对每一位相加。

    对于每一位的和sum,如果sum%k==1,说明此位为目标数提供,然后把所有为1的加起来即可。

    4. Code

     1 class Solution:
     2     def foundOnceNumber(self, arr, k):
     3         res = 0
     4         temp = [0] * 32
     5         for i in range(32):
     6             cur = 0
     7             for a in arr:
     8                 cur += (a >> i) & 1
     9             temp[i] = cur
    10         for i in range(32):
    11             if temp[i] % k != 0:
    12                 if i == 31:
    13                     res -= 1 << i
    14                 else:
    15                     res += 1 << i
    16         return res

    5. 结语

      努力去爱周围的每一个人,付出,不一定有收获,但是不付出就一定没有收获! 给街头卖艺的人零钱,不和深夜还在摆摊的小贩讨价还价。愿我的博客对你有所帮助(*^▽^*)(*^▽^*)!

      如果客官喜欢小生的园子,记得关注小生哟,小生会持续更新(#^.^#)(#^.^#)。

    但行好事 莫问前程
  • 相关阅读:
    青龙峡蹦极
    DNN Web Platform 官方汉化版本 5.5
    “\images” 和 “~\images'”的区别
    我们家的小公主
    asp实用类库DataList
    计算上月、下月、上周、下周..日期范围
    网页按钮大本营
    用XP做服务器突破10人限制
    变动翻屏展示图片效果
    写给所有的IT民工们
  • 原文地址:https://www.cnblogs.com/haifwu/p/15306549.html
Copyright © 2011-2022 走看看