191. 位1的个数

图片说明

  • 初始版本为这个 但是有个问题就是无法区分负数
    public class Solution {
      // you need to treat n as an unsigned value
      public int hammingWeight(int n) {
           int ans = 0;
           while(n>0) {
              if((n&1)==1) 
                  ans++;
              n>>=1;
           }
          return ans;
      }
    }
  • 改为以下版本 用一个数来跟进每个位的情况 就不会负数>>....=> 0
    public class Solution {
      public int hammingWeight(int n) {
           int ans = 0;
           int flag = 1;
           for(int i = 0 ; i< 32 ;i++) {
               if((n&flag)!=0) 
                   ans++;
               flag<<=1;
           }
           return ans;
       }
    }
    public int hammingWeight(int n) {
      int sum = 0;
      while (n != 0) {
          sum++;
          n &= (n - 1);
      }
      return sum;
    }
全部评论

相关推荐

06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 17:10
什么素质,我请问呢,要掉小珍珠了。。。又憋屈又生气
苍蓝星上艾露:给它们能的,一群dinner牛马挥刀向更弱者罢了。我写的开源求职AI co-pilot工具,优化你的简历,找到你匹配的岗位,定制你的简历,并让你做好面试准备https://github.com/weicanie/prisma-ai
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务