题解 | #二进制中1的个数#
二进制中1的个数
https://www.nowcoder.com/practice/8ee967e43c2c4ec193b040ea7fbb10b8
法二有意思。
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param n int整型
# @return int整型
#
class Solution:
def NumberOf1(self , n: int) -> int:
# write code here
cnt = 0
# 法一:遍历每一位
# for i in range(32):
# cnt += (n >> i) & 1
# 法二:位运算公式,每次把n二进制的最右边一个数字1变成0
# python中的数字没有大小限制,在循环中减 1 后 n 依然为复数
if n < 0:
n &= 0xffffffff
while n:
cnt += 1
n &= n - 1
return cnt

基恩士成长空间 426人发布