leetcode 191:Number of 1 Bits

原创 2015年07月09日 20:27:58

题目:
Write a function that takes an unsigned integer and returns the number of ’1’ bits it has (also known as the Hamming weight).

For example, the 32-bit integer ’11’ has binary representation 00000000000000000000000000001011, so the function should return 3.
分析:
这道题设定给定一个32位10进制整数,要求统计其二进制数中1的个数。一种方法是不断位移和做”与”运算,32位就要操作32次,时间复杂度较高;另一种方法通过实践发现,n&(n-1)会消去一个1,也就是n和n-1每做一次“与”运算消去一个1。可以循环做”与”运算,直到为0.
代码:

public class HammingWeight {
    /**
     * 
     * @param n
     * @return
     */
    public static int HammingCode(int n){
        int re=0;
        while(n!=0){
            int left=n & 0X1;
            re +=left;
            n=n>>1;
        }
        return re;
    }
    /**
     * 
     * @param n
     * @return
     */
    public static int Hamin(int n){
        int re=0;
        while(n!=0){
            n=n&(n-1);
            ++re;
        }
        return re;
    }
    public static void main(String[] args){
        int n=11;
        int result=Hamin(n);
        System.out.println("result:"+result);
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

[LeetCode-191] Number of 1 Bits(判断一个整数中有多少个1)

方法一:【分析】判断一个整数最右边是不是1,我们可以把输入的整数和1相&,判断相&之后的结果,判断是不是为1,然后继续移位判断其它位 方法二:【分析】上述的方法只适用于正数,当输入的数为一个负数的时候...
  • xy010902100449
  • xy010902100449
  • 2015年09月14日 20:42
  • 1052

Leetcode_191_Number of 1 Bits

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/44486547 Write a function th...
  • pistolove
  • pistolove
  • 2015年03月20日 08:11
  • 1320

leetcode-191 Number of 1 Bits 二进制数字中1的个数

问题描述: Write a function that takes an unsigned integer and returns the number of ’1' bits it has (als...
  • woliuyunyicai
  • woliuyunyicai
  • 2015年03月10日 19:42
  • 2821

LeetCode-Number of 1 Bits

问题描述Write a function that takes an unsigned integer and returns the number of ’1’ bits it has (also ...
  • canglingye
  • canglingye
  • 2015年03月10日 16:49
  • 6314

LeetCode 191: Number of 1 Bits

class Solution { public:     int hammingWeight(uint32_t n) {         int count=0; int i=1;         ...
  • shensccs
  • shensccs
  • 2015年03月29日 20:59
  • 147

leetCode #191 number of 1 bits

题目:统计32位整型二进制1的位数 分析:按位判断即可。 答案:class Solution { public: int hammingWeight(uint32_t n) { ...
  • MarStarck
  • MarStarck
  • 2015年03月10日 14:12
  • 415

leetcode: (191) Number of 1 Bits

【Question】 Write a function that takes an unsigned integer and returns the number of ’1' bits it h...
  • zk031
  • zk031
  • 2015年08月25日 10:34
  • 142

Leetcode 191 -- Number of 1 bits

Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also know...
  • yiayia070614
  • yiayia070614
  • 2016年09月12日 18:38
  • 73

Leetcode #191 Number of 1 Bits

Question: Write a function that takes an unsigned integer and returns the number of ’1' bits it...
  • dama677409
  • dama677409
  • 2015年03月31日 00:48
  • 267

[LeetCode 191] Number of 1 Bits

Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also know...
  • sbitswc
  • sbitswc
  • 2015年09月02日 12:13
  • 1262
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode 191:Number of 1 Bits
举报原因:
原因补充:

(最多只允许输入30个字)