0
点赞
收藏
分享

微信扫一扫

191. 位1的个数(位运算)

窗外路过了谁 2022-03-10 阅读 44

题目

191. 位1的个数

思路

代码1检查了所有的位,如果是1就加在ans里
代码2只检查到最高位的1

代码1

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++) {
            ans += (n >> i) & 1;
        }
        return ans;  
    }
}

代码2

public class Solution {
    // you need to treat n as an unsigned value
    public int hammingWeight(int n) {
        int ans = 0;
        while (n != 0){
            ans += (n & 1);
            n >>>= 1; //右移一位,并且高位补0
        }
        return ans;  
    }
}
举报

相关推荐

0 条评论