方法一:每位依次判断 O(32)
class Solution {
public:
int hammingWeight(uint32_t n) {
int ans = 0;
for (int i = 0; i < 32; ++i) {
if (n & (1 << i)) ans++;
}
return ans;
}
};
方法二:复杂度优化 O(log n)
class Solution {
public:
int hammingWeight(uint32_t n) {
int ans = 0;
while (n) {
ans++;
n &= (n - 1); //最后一位1变为0
}
return ans;
}
};