剑指offer系列-面试题-15 - 二进制中1的个数 (python)

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丛书

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章