位1的个数
题目链接: https://leetcode.cn/problems/number-of-1-bits
解题思路:
通过遍历二进制位,统计其中
1
的个数在循环中,将计数器
count
加1
,然后将num
与num-1
进行按位与运算,将结果存储到num
中按位与运算的结果是将
num
的最后一位1
变成0
,因此每次循环都会将一个1
变成0
当
num
变成0
时,循环结束
复杂度分析
最后更新于
题目链接: https://leetcode.cn/problems/number-of-1-bits
通过遍历二进制位,统计其中 1
的个数
在循环中,将计数器 count
加 1
,然后将 num
与 num-1
进行按位与运算,将结果存储到 num
中
按位与运算的结果是将 num
的最后一位 1
变成 0
,因此每次循环都会将一个 1
变成 0
当 num
变成 0
时,循环结束
最后更新于
时间复杂度: 时间复杂度是 ,其中 是二进制表示中 的个数。在函数中,需要遍历二进制位,对于每个 ,需要执行一次按位与运算
空间复杂度: 空间复杂度是 ,函数只使用了常数个变量来存储中间结果,没有使用额外的空间