LeetCode题解:191. 位1的个数,位运算,JavaScript,详细注释
Opened this issue · 0 comments
chencl1986 commented
原题链接:191. 位1的个数
解题思路:
- 利用位运算
n = n & (n - 1)
,每次可以清除二进制数中最后一个1。 - 每次循环进行上述操作,并统计
1
的数量,直到n
被清零为止。
/**
* @param {number} n - a positive integer
* @return {number}
*/
var hammingWeight = function (n) {
let count = 0; // 统计1的数量
// 不断循环直到1被清空
while (n !== 0) {
count++; // 每清除一个1就计数一次
n = n & (n - 1); // 每次清除最后一位的1
}
return count;
};