题目描述

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

思路

详见链接

代码

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

复杂度

时间复杂度 O(log_2 n):此算法循环内部仅有 移位、与、加 等基本运算,占用 O(1)O(1) ;逐位判断需循环 log_2 n次,其中 log_2 n代表数字 n 最高位 1 的所在位数(例如 log_2 4 = 2, log_2 16 = 4)。
空间复杂度 O(1)O(1) :变量 resres 使用常数大小额外空间。

剑指offer面试题15. 二进制中1的个数(位运算)相关推荐

  1. 剑指Offer - 面试题15. 二进制中1的个数(位运算)

    1. 题目 请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数.例如,把 9 表示成二进制是 1001,有 2 位是 1.因此,如果输入 9,则该函数输出 2. 示例 1: 输入:0000 ...

  2. 剑指offer面试题[10]-二进制中1的个数

    题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 分析: 这是一道很基本的考察二进制和位运算的面试题.思路:先判断证书二进制表示中最右边的一位是不是1.接着再把输入的数字右移 ...

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

    题目:二进制中1的个数 请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数.例如,把 9 表示成二进制是 1001,有 2 位是 1.因此,如果输入 9,则该函数输出 2. 示例 1: 输 ...

  4. 【剑指offer-Java版】10二进制中1的个数

    二进制中1的个数: 思路一:循环右移给定的数,但是存在负数出现死循环的问题 思路二:声明一个变量flag并初始化为1,然后循环右移flag,循环次数是和给定数的精度也就是位数有关 思路三:用了二进制一 ...

  5. [剑指offer][JAVA]面试题第[15]题[二进制中1的个数][位运算]

    [问题描述][简单] 请实现一个函数,输入一个整数(无符号数),输出该数二进制表示中 1 的个数.例如,把 9 表示成二进制是 1001,有 2 位是 1.因此,如果输入 9,则该函数输出 2.示例 ...

  6. 面试题15. 二进制中1的个数

    请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数.例如,把 9 表示成二进制是 1001,有 2 位是 1.因此,如果输入 9,则该函数输出 2. 示例 1: 输入:0000000000 ...

  7. 《LeetCode力扣练习》剑指 Offer 15. 二进制中1的个数 Java

    <LeetCode力扣练习>剑指 Offer 15. 二进制中1的个数 Java 一.资源 题目: 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ...

  8. 【LeetCode】剑指 Offer 15. 二进制中1的个数

    [LeetCode]剑指 Offer 15. 二进制中1的个数 文章目录 [LeetCode]剑指 Offer 15. 二进制中1的个数 一.逐位判断 二.巧用 n&(n−1) 一.逐位判断 ...

  9. 剑指 Offer 15. 二进制中1的个数 + 191. 位1的个数(n(n-1)实例)

    一.题目:剑指 Offer 15. 二进制中1的个数 请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数.例如,把 9 表示成二进制是 1001,有 2 位是 1.因此, ...

最新文章

  1. mysql语句生成工具_强烈推荐一款MySQL语句优化辅助工具,值得收藏
  2. 关于烂代码的那些事(上)
  3. 1192 约瑟夫问题(1)
  4. mimakatz用法_两步完成利用procdump64+mimikatz获取win用户密码
  5. 长生不死、名人复活?疯狂的AI时代,人类竟要靠IA实现“永生”
  6. SpringBoot @CachePut注解的使用原理
  7. ROS笔记(24) Amcl
  8. xml文件导入wps_WPS2016文档怎么保存为XML格式?
  9. postgreSQL源码分析——索引的建立与使用——各种索引类型的管理和操作(2)
  10. html中iframe子页面与父页面元素的访问以及js变量的访问
  11. 怎么在Android布局里面写下拉框,Android CoordinatorLayout(六) 加入下拉功能
  12. Android SwipeRefreshLayout 实现下拉刷新2
  13. 微信加人就服务器频繁,微信加同一个人好友,提示操作过于频繁,请稍后重试!这个是什么意思啊?...
  14. 光线跳线转接太多,断网了
  15. PHP ThinkPHP 命名空间引入(use )
  16. 魅族魅蓝新品15日发布 售价或超过千元?
  17. 4个小方法,让你的抖音发出来的视频更清楚
  18. EtherCAT IGH 命令行介绍
  19. 二氧化钛TiO2纳米粒子(尺寸80nm-800nm可调节)的高清电镜图
  20. PAP与CHAP认证

热门文章

  1. Android6.0指纹识别开发
  2. 修改配置nginx,限制无良爬虫频率
  3. Can't locate ExtUtils/MakeMaker.pm
  4. h3c交换机怎么设置虚拟服务器,H3C交换机配置 | 如何实现两个网段主机与外部通信...
  5. Android view 小总结
  6. 不使用border-radius,实现一个可复用的高度和宽度都自适应的圆角矩形
  7. matlab表白_撩妹攻略|理工男专属情人节表白礼物来啦~
  8. lvm快照备份mysql
  9. BFS(两点搜索) UVA 11624 Fire!
  10. ExcelReport第二篇:ExcelReport源码解析