题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

直观思路就是把二进制表示从右往左统计1的个数。直接想到移位操作来迭代处理。坑点在于负数的移位操作会填充1。有人贴出了逻辑移位操作,但还是麻烦。直接按照int的位数,32或64,做这么多次移位操作就好了,每次移位操作累计是否为1。int的位数是32还是64,可以写一个函数来做到,而不是硬编码。

class Solution {
public:int  NumberOf1(int n) {int cnt = 0;int i = 0;int int_bit_length = get_int_bit_length();while (i<int_bit_length){cnt += (n & 1);n = (n >> 1);i = i + 1;}return cnt;}int get_int_bit_length(){int a = 1;int bit_cnt = 0;while (a != 0){a = (a<<1);bit_cnt += 1;}return bit_cnt;}
};

《剑指offer》-统计整数二进制表示中1的个数相关推荐

  1. 剑指offer:二维数组中的查找

    目录 题目 解题思路 具体代码 题目 题目链接 剑指offer:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺 ...

  2. 利用指针数组计算2个3行4列矩阵的和_[剑指 Offer] 04. 二维数组中的查找

    难度:简单 题目链接:剑指 Offer 04. 二维数组中的查找 题目描述: 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数, ...

  3. 剑指 Offer 04. 二维数组中的查找

    剑指 Offer 04. 二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一个二维数组和一个 ...

  4. 【LeetCode】剑指 Offer 04. 二维数组中的查找

    [LeetCode]剑指 Offer 04. 二维数组中的查找 文章目录 [LeetCode]剑指 Offer 04. 二维数组中的查找 package offer;public class Solu ...

  5. 《剑指Offer》刷题之最小的K个数

    <剑指Offer>刷题之最小的K个数 我不知道将去向何方,但我已在路上! 时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! 题目: 给定一个数组,找出其中最小的K个数. ...

  6. [剑指Offer]5.二维数组中的查找

    题目 在一个二维数组中,每一行都依照从左到右递增的顺序排序,每一列都依照从上到下递增的顺序排序.请完毕一个函数,输入这种一个二维数组和一个整数.推断数组中是否含有该整数. 思路 [算法系列之三十三]杨 ...

  7. 剑指Offer #01 二维数组中的查找(Java描述)

    题目来源:牛客网-剑指Offer专题 题目地址:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一 ...

  8. 【剑指offer】【leetcode精选题集】【Java】剑指offer题解合集 更新中

    Leetcode题集 [剑指offer][JAVA]面试题第[03]题[数组中的重复数字][HashSet] [剑指offer][JAVA]面试题第[04]题[二维数中的查找][数组] [剑指offe ...

  9. 剑指offer面试题[40]-数组中只出现一次的数字

    题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 注意原题目要求空间复杂度为0(1). 位运算的具体思路可以参看剑指offer. class So ...

最新文章

  1. C++中局部类的使用
  2. rand和srand
  3. 有人顶贴,是对你的肯定
  4. leetcode 113. 路径总和 II
  5. 引:善用backtrace解决大问题
  6. 请举例说明@Qualifier 注解?
  7. python如何导入seaborn_Seaborn - 导入数据集和库
  8. php redis.dll php5.6,在Windows 64位下为PHP5.6.14安装redis扩展
  9. python基本语句及其意思_Python语法基础(1),一
  10. Java第十次作业 1502 马 帅
  11. Spring Ioc Configration - Annotation
  12. c++ gzip java.util.zip.gzip_java.util.zip.GZIPInputStream.close()方法示例
  13. 知名视频编辑工具:达芬奇剪辑调色软件 DaVinci Resolve Studio Mac v17.3.1
  14. 汽车品牌查询及车型大全查询
  15. 网络编程-在线英英词典项目
  16. server2003安装sqlserver以及基本操作
  17. Java开发者,我到底要不要学大数据开发?
  18. qt多级菜单_Qt高仿电脑管家界面(二):点击按钮弹出菜单
  19. 汇编启蒙题--by cyl老师
  20. dell屏幕亮度调节不了_Win10屏幕亮度调不了怎么办-百度经验

热门文章

  1. 【自用】手工编译lnmp环境
  2. Eloquent JavaScript 阅读笔记一
  3. 【经典算法】第八回:桶排序
  4. android Linkify的用法
  5. 数据源改变后,BarChart组件的运动效果.
  6. 热门NPM库 “coa” 和“rc” 接连遭劫持,影响全球的 React 管道
  7. PHP date() 函数
  8. 关于oracle数据恢复
  9. Python 操作 Azure Blob Storage
  10. Python OpenCV学习笔记之:灰度图像的直方图计算