Easy-题目15:191. Number of 1 Bits

原创 2016年05月30日 19:58:11

题目原文:
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.
题目大意:
给出一个整数,求它的二进制形式里面有多少个‘1’。
题目分析:
如果n 只有1位(0或1),直接返回n,否则返回n的最后一位加上n右移一位所得数中1的个数(递归计算)。
源码:(language:c)

int hammingWeight(uint32_t n) {
    return (n==0||n==1)?n:(hammingWeight(n/2)+n%2);
}

成绩:
4ms,beats3.83% 众数4ms,96.17%
Cmershen的碎碎念:
Java中有一个库函数可以水过此题:Integer.bitCount(n);
附JDK中bitCount的算法(大概是一个很巧妙的”分治算法”的位运算,复杂度O(1))

public static int bitCount(int i) {
        // HD, Figure 5-2
        i = i - ((i >>> 1) & 0x55555555);
        i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);
        i = (i + (i >>> 4)) & 0x0f0f0f0f;
        i = i + (i >>> 8);
        i = i + (i >>> 16);
        return i & 0x3f;
}
版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs

Redis介绍以及安装(Linux)

redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括strin...
  • zhaifengmin
  • zhaifengmin
  • 2015年06月10日 22:03
  • 1407

关于Genymotion使用android5.1报错或者无法启动的解决方法

情况一: 启动虚拟机的时候,报错,提示: Caution: the number of CPUs of the virtual device has been forced to 1. Virtua...
  • LKL9413
  • LKL9413
  • 2015年08月12日 16:40
  • 1767

Rotate bits of a number 左旋转或右旋转一个数 @GFG

Bit Rotation: A rotation (or circular shift) is an operation similar to shift except that the bits t...
  • hellobinfeng
  • hellobinfeng
  • 2013年11月13日 02:16
  • 1214

[191] Number of 1 Bits

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

LeetCode笔记:191. Number of 1 Bits

判断一个无符号数的二进制有多少个1
  • Cloudox_
  • Cloudox_
  • 2016年09月22日 09:32
  • 984

LeetCode 191.Number of 1 Bits 解题报告

LeetCode 191.Number of 1 Bits 解题报告
  • camellhf
  • camellhf
  • 2016年09月11日 10:31
  • 317

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

题目链接:https://leetcode.com/problems/number-of-1-bits/ 题目描述: Write a function that takes an unsigned ...
  • zhemeteor
  • zhemeteor
  • 2015年03月18日 15:48
  • 241

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...
  • Appletable
  • Appletable
  • 2016年03月05日 10:27
  • 158

【leetcode】191. Number of 1 Bits

一、题目描述 Write a function that takes an unsigned integer and returns the number of ’1' bits it ha...
  • xiaoquantouer
  • xiaoquantouer
  • 2016年06月07日 10:10
  • 138

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...
  • u012614906
  • u012614906
  • 2017年03月12日 20:59
  • 606
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Easy-题目15:191. Number of 1 Bits
举报原因:
原因补充:

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