【位运算-简单】剑指 Offer 15. 二进制中1的个数(6种解法+拓展题还没写)

2024最新版Anaconda Navigator安装使用指南 本文简要介绍如何下载安装Anaconda Navigator最新版,以及如何使用Python内核搭载来完成应用程序开发。 阅读详情

【题目】
请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。
【示例 1】
输入:00000000000000000000000000001011
输出:3
解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 ‘1’。
【示例 2】
输入:00000000000000000000000010000000
输出:1
解释:输入的二进制串 00000000000000000000000010000000 中,共有一位为 ‘1’。
【示例 3】
输入:11111111111111111111111111111101
输出:31
解释:输入的二进制串 11111111111111111111111111111101 中,共有 31 位为 ‘1’。
【提示】
输入必须是长度为 32 的 二进制串 。
【代码】
【Python】
【Method1】
在这里插入图片描述

class Solution:
    def hammingWeight(self, n: int) -> int:
        cnt=dict(Counter(list(str(bin(n)))))
        return cnt.setdefault('1',0)

【Method2:一行代码】
在这里插入图片描述

class Solution:
    def hammingWeight(self, n: int) -> int:
        return dict(Counter(list(bin(n)))).setdefault('1',0)

【Method3普通法:简单模拟】
在这里插入图片描述

class Solution:
    def hammingWeight(self, n: int) -> int:
        cnt=0
        while n:
            cnt+=n%2
            n//=2
        return cnt

【Method4】
在这里插入图片描述

class Solution:
    def hammingWeight(self, n: int) -> int:
        return bin(n)[2:].count('1')

【Method5:位运算】
在这里插入图片描述

class Solution:
    def hammingWeight(self, n: int) -> int:
        cnt=0
        while n:
            cnt+=n&1
            n>>=1
        return cnt

【Method6:n&(n-1)】
在这里插入图片描述

class Solution:
    def hammingWeight(self, n: int) -> int:
        cnt = 0
        while n:
            cnt += 1
            n &= n - 1
        return cnt

练习题:
2的幂

SAP_ABAP_MM_BAPI清单案例教程——采购发票校验/预制_BAPI_INCOMINGINVOICE_PARK_MIRO SAP ABAP BAPI_INCOMINGINVOICE_PARK BAPI 采购发票预制 采购发票校验 代码模版 阅读详情

相关推荐

【深度学习3】ubuntu22.04从零开始搭建深度学习环境

ubuntu22.04从零开始搭建深度学习开发环境

weixin_43387635的博客 1万+

统计整数n的二进制展开数中1的个数

问题描述:             计算一个10进制的二进制展开数中1的个数。 比如: n  = 441(10)  = 110111001(2) //计算二进制数字里面1的个数 #include int main() { int ones = 0; unsigned int n = 441; //441 = 110111001 while (0 < n)

未名的专栏 1542

带你一分钟了解电感与磁珠的区别

在电路设计中会经常使用到电感和磁珠,虽然在电路中的作用有所不同,但它们都属于磁性电子元器件,本文简单介绍下电感和磁珠的区别电感和磁珠电感和磁珠的结构主要由磁性材料金属线圈和外壳组成,具体结构如下图所示:电感磁珠结构图电感其实是金属线圈缠绕在磁芯上,而磁珠是在内部折叠后外围包裹着铁氧体磁性材料。电感器(Inductor)又称扼流器、电抗器、动态电抗器是储能器件,能够把电能转化为磁能而存储起来的元件。磁珠则是能量转换(消耗)器件,将流过他的高频信号以热能的形式消耗掉。

攻城狮鹏哥 1410

统计整数n的二进制表示中1的个数

(1)逐位判断(位运算) int counter_ones(unsigned n) { int counter = 0; While (n) { counter += n&1; n >>=1; } return counter; } (2)一个整型不为0,那么二进制表示时,至少包含一位1。如果整数减去1,那么最右边的1变成0,而该1后面的0变成1,其余位不变。将原来的整数和...

昔拉的博客 1105

封包(一)(雷电模拟器+ProxyDroid+查尔斯3.93+WPE)

自从换了工作就没有给大家分享一些干活,在加上陪伴自己的孩子没有时间更新文章了,这只能在晚上给大家写文档了,我最近在游戏公司上班,研究封包。我把这些东西都做成了笔记,我想有些东西是大家都想弄明白d ...

寒梅独自开 1万+

【浙大翁恺】C语言习题

/* 02-0. 整数四则运算(10) 本题要求编写程序,计算2个正整数的和、差、积、商并输出。 题目保证输入和输出全部整型范围内。 输入格式: 输入在一行中给出2个正整数A和B。 输出格式: 在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。 输入样例: 3 2 输出样例: 3 + 2 = 5 3 - 2 = 1 3 * 2 = 6 3 / 2 =.

qq_43600867的博客 5867

剑指offer系列——剑指 Offer 15. 二进制中1的个数(C语言)

⭐️前面的话⭐️ 大家好!博主开辟了一个新的专栏——剑指offer,我要开始刷题了!这个专栏会介绍《剑指offer》书上所有的面试编程题。并且会分享一些我的刷题心得。由于博主水平有限,如有错误,欢迎指正,如果有更好的解题思路和算法可以分享给博主哦!一起加油!一起努力!剑指 Offer 15. 二进制中1的个数(C语言)

未见花闻的博客 1120

LTspice导入德州仪器SPICE模型的实用指南与常见问题解析

本文详细介绍了如何在LTspice中导入德州仪器的SPICE模型,包括模型文件获取、路径管理、导入步骤及常见问题解析。通过实用指南帮助工程师精确仿真电路性能,提升设计效率,重点涵盖了第三方模型的导入教程和最佳实践。

kk1234的博客 314

《剑指offer》详解-Python

问题3:二维数组中的查找 Q: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 A1:遍历整个二维数组,O(n2)O(n^2)O(n2) A2: 从左上或者右下开始查找。从右上开始查找:如果数组中的数比这个整数大,向左移动一位,如果数组中的数比这个数小,...

林夕 2万+

华为OD机考双机位C卷 - 风险投资计划(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 风险投资计划(OD上机考试双机位C卷)。提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 548

RSA算法详解:万字文章详解RSA的加密与解密

为了彻彻底底的研究明白RSA算法,真的是。。煞(lei)费(si)苦(wo)心(le),首先我希望自己前前后后、彻彻底底的琢磨明白,其次我也希望我把他分享出来以后,大家都能读得懂,这篇文章真的是我迄今为止写的又臭又长的一篇文章了,但是我能保证的是,你读完了以后,绝对不会再问RSA是啥玩意儿了。。

布啦啦 7669

剑指 Offer 15. 二进制中1的个数 简单位运算

剑指 Offer 15. 二进制中1的个数 难度:简单 题目描述 解题思路 1、常规解法 很基础的考察位运算的题目 从最右边的数字开始,每次和1做与运算,如果那个数字是1那就得到1,计数+1 每判断完一位,就右移一位,因为给的是无符号整数,所以可以用无符号右移,在Java里是>>> /* * 剑指 Offer 15. 二进制中1的个数 * 2020/7/28 */ public int hammingWeight(int n)

hh155715的博客 196

【DaVinci Developer工具实战】03 -导入xml文件

本文档描述了 DaVinci Developer 导入数据的的具体功能 ,它适用于导入AUTOSAR SWC 模板【AUTOSAR XML 文件】 文件。

1992

剑指offer15:二进制中1的个数 python

剑指offer15:二进制中1的个数 python题目描述解法1. 移位法2. n&(n-1)法3. 偷懒利用语言特性法思考感想 题目描述 解法 1. 移位法 利用位的运算,比如 a = 0011 1100 那么位>>的运算为: a >> 2 输出 0000 1111 将后面两位往后移,高位补0。 位运算符号& a = 0011 1100 b = 000 1101 a&b = 000 1100 更多位运算符号可以看这里非常详细 利用上述特性我们可

weixin_43494312的博客 324

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

《剑指Offer》题解汇总索引表(leetcode)

《剑指Offer》题解汇总索引表(leetcode) ???? 文章目录《剑指Offer》题解汇总索引表(leetcode)[【LeetCode】《剑指Offer》第Ⅰ篇⊰⊰⊰ 3 - 11题](https://blog.csdn.net/weixin_44368437/article/details/114194973)[【LeetCode】《剑指Offer》第Ⅱ篇⊰⊰⊰ 12 - 19题](https://blog.csdn.net/weixin_44368437/article/details/114

像写诗一样优雅地写代码~ 2万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

剑指 Offer(第2版)面试题 15:二进制中 1 的个数

剑指 Offer(第2版)面试题 15:二进制中 1 的个数

ProgramNovice的博客 527

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

剑指offer之11-15题解

剑指offer之11-15题解 目录 二进制中1的个数 数值的整数次方 调整数组顺序使奇数位于偶数前面 链表中第k个节点 反转链表 11. 二进制中1的个数 (一)题目描述 (二)思路 n & n-1,该位运算去除n的位级表示中最低的那一位。 调用Integer.bitCount()方法:返回二进制补码中1位的个数 (三)代码实现 代码实现 public class...

努力努力再努力L 848

剑指offer(11-25题)详解

文章目录01二进制种1的个数★12数值的正数次方13调整数组顺序使奇数位于偶数前面14链表中倒数第K个节点15 反转链表 欢迎关注个人数据结构专栏哈 微信公众号:bigsai 声明:大部分题基本未参考题解,基本为个人想法,如果由效率太低的或者错误还请指正!,如果有误导,还请指正! 01二进制种1的个数★ 题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。。 思路: ...

bigsai 8717

[剑指-Offer] 15. 二进制中1的个数(位运算、技巧、代码优化)

文章目录1. 题目来源2. 题目说明3. 题目解析方法一:常规左移、右移位运算解法方法二:位运算技巧方法三:位运算常见问题总结 1. 题目来源 链接:二进制中1的个数 来源:LeetCode——《剑指-Offer》专项 2. 题目说明 请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。 示...

Y-puyu 的博客 294

剑指 Offer 15—二进制中1的个数

剑指offer—二进制中1的个数

qq_39172845的博客 6749

剑指 offer 刷题——15. 二进制中 1 的个数

一、题目 请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。 示例 1: 输入:00000000000000000000000000001011 输出:3 解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。 示例 2: 输入:00000000000000000000000010000000 输出:1 解释:输入的二进制串 0000000

kezhou的博客 315

[剑指Offer]-二进制中1的个数

补充知识:位运算 基础与、或、异或运算 与(&) 或(|) 异或(^) 0&0=0 0|0=0 0^0=0 0&1=0 1|0=1 1^0=0 1&0=0 0|1=1 0^1=0 1&1=1 1|1=1 1^1=1 有0则0 有1则1 同出1不同出0 左移 左移n位最左边的n为直接丢弃,右边补n个0. 00...

LeoByte的编程驿站 515

【剑指offer】面试题15:二进制中 1 的个数

题目:请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如把9表示成二进制是1001,有2位是1,因此如果输入9,该函数输出2。  1、可能引起死循环的解法 这是一道很基本的考察二进制和位运算的面试题。题目不是很难,面试官提出问题之后,我们很快形成一个基本的思路:先判断整数二进制表示中最右边一位是不是1;接着把输入的整数右移一位,此时原来处于从右边数起的第二位被移到最...

Java学习 535

【Golang】LeetCode-剑指Offer-面试题15-二进制中1的个数【两种解法】

题目 请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。 例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。 示例 1: 输入:00000000000000000000000000001011 输出:3 解释:输入的二进制串00000000000000000000000000001011 中,共有三位为 ‘1’。 示例 2: 输入:...

士多啤梨先生の博客 404

【剑指 Offer_15】二进制中1的个数_Python&Java_逐位相与解法

剑指 Offer 15. 二进制中1的个数“前戏”正题——剑指 Offer 15. 二进制中1的个数竟然有这种解法!!!Java解法Python解法C++解法 “前戏” 刷题有时候也没辣么枯燥,比如这样 这个坤坤和杰哥我是经常见了。常常使我破涕而笑~ 没有别的意思,晒出来就是好玩~ 杰哥很努力啊 ~ 杰哥你也好勇 ~ 今天刷题刷到——剑指 Offer 15. 二进制中1的个数 涨新姿势了有木有~ 我只能评论1无所有:) 主要是最最最基础的题刷完一道少一道,路越来越难走,做题的激情有所下降,而在这个网站上

程序猿进化梯 1139

[剑指Offer] 15_二进制中1的个数

题目 面试题15:二进制中1的个数 题目:实现一个函数,输入一个整数,输出该数二级制表示中1的个数。 例: 把9表示成二进制是1001,有2位是1。因此如果输入9,则该函数输出2。 思路 最直接的思路:从低位开始向高位逐一比较是否为1, 并计数。 时间复杂度:O(n),num的二进制位数 空间复杂度:O(1) 利用二进制数的一个特点。A = /******…/ 1 /000000…/ 对...

热辣芒果园 277
上一篇: 【位运算-简单】461. 汉明距离
下一篇: 【位运算-简单】191. 位1的个数
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值