2020-05-27
1.题目描述
位1的个数
2.题解
1.直接看每个位是0还是1即可,此时的时间复杂度为数n二进制表示的位数,那有没有办法能够使其时间
复杂度等于1的个数呢?
2.n&(n-1)可以将n二进制表示最右边的1变成0,我们可以一直重复这个操作。
3.题解
class Solution {
public:
int hammingWeight(uint32_t n) {
int cnt=0;
while (n){
n=n&(n-1);
cnt++;
}
return cnt;
}
};