专栏首页LeetCode解题191. 位1的个数
原创

191. 位1的个数

链接

编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。

示例 1:

输入:00000000000000000000000000001011
输出:3
解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。

示例 2:

输入:00000000000000000000000010000000
输出:1
解释:输入的二进制串 00000000000000000000000010000000 中,共有一位为 '1'。

示例 3:

输入:11111111111111111111111111111101
输出:31
解释:输入的二进制串 11111111111111111111111111111101 中,共有 31 位为 '1'。

go语言版

  1. 给定一个数n,每进行一次n&(n-1)计算,其结果中都会少了一位1,而且是最后一位。
  2. 可以通过不断地用n&(n-1)操作去掉n中最后一位1的方法求出n中1的个数
func hammingWeight(num uint32) int {
    res := 0
    for num > 0 {
        num &= num - 1
        res++
    }
    return res
}

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 191. 位1的个数

    编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。

    lucifer210
  • 【LeetCode】191. 位1的个数

    编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。

    韩旭051
  • Leetcode No.191 位1的个数

    编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。

    week
  • LeetCode 图解 | 191.位 1 的个数

    编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。

    五分钟学算法
  • ​LeetCode刷题实战191:位1的个数

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就...

    程序IT圈
  • (Leetcode 2021 刷题计划) 191. 位1的个数

    编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。

    windism
  • AcWing 每日一题春季(九)LeetCode 191. 位1的个数(树状数组lowbit)

    glm233
  • Leetcode#191. Number of 1 Bits(位1的个数)

    编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。

    武培轩
  • LeetCode 191. Number of 1 Bits(位运算)

    题意:求一个数的二进制形式里有多少个1,我们可以用位运算一位一位的去取,但是还有更高级的方法。

    ShenduCC

扫码关注云+社区

领取腾讯云代金券