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

相关文章推荐

[191] Number of 1 Bits

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

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

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

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 { ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Easy-题目15:191. Number of 1 Bits
举报原因:
原因补充:

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