js_algorithm
js_algorithm copied to clipboard
位1的个数
位1的个数:https://leetcode-cn.com/problems/number-of-1-bits/
思路分析
这里有一个小技巧, 可以轻松求出。 就是n & (n - 1) 可以消除 n 最后的一个1。
如果对位运算比较了解的话,那么相信你一定对上述这条
skill
很熟悉🙈
这样我们可以不断进行n = n & (n - 1)
直到n === 0
, 说明没有一个1了。通过count
去计数即可~
代码实现
/**
* @param {number} n - a positive integer
* @return {number}
*/
var hammingWeight = function(n) {
let count = 0;
while (n !== 0) {
// n & (n - 1) 可以消除 n 最后的一个1
n = n & (n-1)
count++
}
return count
};