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

Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also know...

【leetcode】191. Number of 1 Bits

一、题目描述 Write a function that takes an unsigned integer and returns the number of ’1' bits it ha...

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...

leetCode 191. Number of 1 Bits

题目链接:https://leetcode.com/problems/number-of-1-bits/     题目内容: Write a function that takes an unsi...

LeetCode笔记:191. Number of 1 Bits

判断一个无符号数的二进制有多少个1

LeetCode 191.Number of 1 Bits 解题报告

LeetCode 191.Number of 1 Bits 解题报告

[LeetCode][191][Number of 1 Bits]

题目链接:https://leetcode.com/problems/number-of-1-bits/ 题目描述: Write a function that takes an unsigned ...

leetCode191/201/202/136 -Number of 1 Bits/Bitwise AND of Numbers Range/Happy Number/Single Number

链接:https://leetcode.com/problems/number-of-1-bits/ 此题关键是如何判断一个数字的第i为是否为0  即: x& (1 class Solution { ...

[191] Number of 1 Bits

给定一个整数,统计这个32位整数中1的数量。
  • camlot_
  • camlot_
  • 2016年06月27日 20:23
  • 191

148. Sort List\191. Number of 1 Bits\476. Number Complement\342. Power of Four

题目描述 代码实现题目描述Sort a linked list in O(n log n) time using constant space complexity.对一个链表进行排序,时间复杂度为O...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode 191:Number of 1 Bits
举报原因:
原因补充:

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