位运算
二进制第一位“1”所在下标
def find_one(num):
return num & (-num)
# -num = ~num + 1
if __name__ == '__main__':
print(find_one(10), bin(10)) # 2 -> 10(2)
二进制的第k位是否为0
def is_zero(num, k):
return not ((num >> k) & 1)
if __name__ == '__main__':
print(is_zero(10, 2), bin(10))
只出现一次的数字
from typing import List
class Solution:
def singleNumber(self, nums: List[int]) -> int:
ans = 0
for num in nums:
ans ^= num
return ans
最后更新于
这有帮助吗?