剑指 Offer 15. 二进制中 1 的个数
发布日期:2021-05-08 03:55:25 浏览次数:25 分类:精选文章

本文共 897 字,大约阅读时间需要 2 分钟。

系列文章目录


文章目录


前言


一、剑指 Offer 15. 二进制中 1 的个数

请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。

示例 1:

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

示例 2:

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

示例 3:

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

提示:

输入必须是长度为 32 的 二进制串 。

二、使用步骤

1.引入库

代码如下:

方法一

class Solution {   public:    int hammingWeight(uint32_t n) {           unsigned int num=0;        while(n != 0)        {               num += n&1;            n >>= 1;        }        return num;    }};

方法二

class Solution {   public:    int hammingWeight(uint32_t n) {           int res = 0;        while(n != 0) {               res++;            n &= n - 1;        }        return res;    }};

总结

以上就是今天要讲的内容

上一篇:三:Zookeeper典型使用场景实战
下一篇:二:Zookeeper客户端使用与集群特性

发表评论

最新留言

很好
[***.229.124.182]2025年03月21日 00时22分03秒