0%

191. Number of 1 Bits

常规数1法

1
2
3
4
5
6
7
8
9
10
11
class Solution {
public:
int hammingWeight(uint32_t n) {
int res = 0;
while (n > 0) {
res += (n & 1);
n >>= 1;
}
return res;
}
};

翻转最后一个1法
这个比较通用,不受n正负的影响

1
2
3
4
5
6
7
8
9
10
11
class Solution {
public:
int hammingWeight(uint32_t n) {
int res = 0;
while (n > 0) {
++res;
n &= (n - 1); // 把最低位的1变成0
}
return res;
}
};