文章目录
1. 题目2. 解题思路3. 代码实现3.1
4. 总结5. 参考文献
1. 题目
请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。例如,9表示成二进制是1001, 有2位1。因此,如果输入9,则该函数输出2。
2. 解题思路
因为涉及到了二进制,所以使用位运算
详细思路移步 leetcode 面试题15. 二进制中 1 的个数(位运算,清晰图解)
3. 代码实现
3.1
class Solution:
def hammingWeight(self
, n
):
"""
"""
count
= 0
while n
:
count
+= 1
n
= (n
-1) & n
return count
4. 总结
num & 1的结果是,奇数为1偶数为0。
5. 参考文献
[1] 剑指offer丛书