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. 结语
努力去爱周围的每一个人,付出,不一定有收获,但是不付出就一定没有收获! 给街头卖艺的人零钱,不和深夜还在摆摊的小贩讨价还价。愿我的博客对你有所帮助(*^▽^*)(*^▽^*)!
如果客官喜欢小生的园子,记得关注小生哟,小生会持续更新(#^.^#)(#^.^#)。
但行好事 莫问前程