LeetCode刷题笔记第191题:位1的个数
题目:
想法:
通过位运算判断二级制形式中有多少个1,代码及解释如下:
class Solution:
def hammingWeight(self, n: int) -> int:
return sum(1 for i in range(32) if n & (1 << i))
上述代码的解释如下:
- range(32)是因为题目中对输入数值的限制
- n & (1 << i)是判断输入数值二进制在哪些位置上是1,其中1<<i表示生成一个只有第 i 位为1的数
时间复杂度为:
O
(
1
)
O(1)
O(1)。
空间复杂度为:
O
(
1
)
O(1)
O(1)。