191. 返回数字为是1的个数

leetCode数组

# 解法一:转换成二进制字符串进行累加

/**
 * @param {number} n - a positive integer
 * @return {number}
 */
var hammingWeight = function(n) {
    let str = n.toString(2);
    let count = 0;
    for(let i = 0; i < str.length; i++) {
        // 不能用===,因为str[i]是字符串类型,要么用Number强制转换
        if (str[i] == 1) count++;
    }
    return count;
};
1
2
3
4
5
6
7
8
9
10
11
12
13

# 解法二:取余分离个位数,判断累加

/**
 * @param {number} n - a positive integer
 * @return {number}
 */
var hammingWeight = function(n) {
    let count = 0;
    while(n !== 0) {
        let num = n % 2;
        if (num === 1) count++;
        n = Math.floor(n / 2)
    }
    return count;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
更新时间: 2022-03-25 17:04