网址
描述
输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。
解法
n=n&(n-1); 用与操作将右起第一个1变为0。
时间复杂度O(n),n为1的个数
空间复杂度O(1)
class Solution {
public:
int NumberOf1(int n) {
int res=0;
while(n){
res++;
n=n&(n-1);
}
return res;
}
};