191.Number of 1Bits---位运算---《剑指offer》10

时间:2023-03-09 06:50:16
191.Number of 1Bits---位运算---《剑指offer》10

题目链接:https://leetcode.com/problems/number-of-1-bits/description/

题目大意:与338题类似,求解某个无符号32位整数的二进制表示的1的个数。注意要求是无符号32位整数。

注意:无符号整数的范围是0~2^32-1,而普通int的范围是-2^31 ~ 2^31-1。

法一:直接用普通十进制转二进制的办法做,发现超时了,超时数据是2^31,当我把这个数放进eclipse中发现直接报错,至于为什么在leetcode里还可以编译通过,我也不知道。想看它的测试代码,发现并没有公开。代码如下:

     public int hammingWeight(int n) {
int cnt = 0;
while(n != 0) {
cnt += n & 1;
n >>= 1;
}
return cnt;
}

生气!这段代码用C++提交,AC了!耗时3ms,生气!