通过万岁!!!
- 题目:给你一个数n,然后问他的二进制中有多少个1。
- 思路:我们让这个二进制分别跟2的i次方进行与运算,如果这个值不是0,则表示第i位是1,这时候我们让返回结果+1即可,一共进行32次运算。
- 技巧:位运算
java代码
public class Solution {
// you need to treat n as an unsigned value
public int hammingWeight(int n) {
int ans = 0;
for (int i = 0; i < 32; i++) {
if ((n & (1 << i)) != 0) {
ans++;
}
}
return ans;
}
}
- 总结:题目比较简单,但是主要是需要知道位运算。 在LeetCode——231.2的幂中总结了位运算符。