码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 191. 位1的个数

时间:2020-09-24 21:24:45      阅读:33      评论:0      收藏:0      [点我收藏+]

标签:rip   image   位移   class   pre   mic   UNC   return   操作   

技术图片

解法:

1. 方法:循环和位移动
    注意:不可以将n右移,必须设定掩码,n可能为负数。
var hammingWeight = function (n) {
    let ans = 0;
    let mask = 1;
    for (let i = 0; i < 32; i++) {
        ans += (n & mask) == 0 ? 0 : 1;
        mask = mask << 1;
    }
    return ans;
};
2. 方法:位操作的小技巧
    利用n&(n-1)会将n的二进制最会一位的1变成0的小技巧
var hammingWeight = function (n) {
    let ans = 0;
    while (n != 0) {
        ans++;
        n = n & (n - 1);
    }
    return ans;
};

LeetCode 191. 位1的个数

标签:rip   image   位移   class   pre   mic   UNC   return   操作   

原文地址:https://www.cnblogs.com/JosephWong/p/13720072.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!