《剑指offer》-统计整数二进制表示中1的个数
题目描述
输入一个整数,输出该数二进制表示中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的个数相关推荐
- 剑指offer:二维数组中的查找
目录 题目 解题思路 具体代码 题目 题目链接 剑指offer:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺 ...
- 利用指针数组计算2个3行4列矩阵的和_[剑指 Offer] 04. 二维数组中的查找
难度:简单 题目链接:剑指 Offer 04. 二维数组中的查找 题目描述: 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数, ...
- 剑指 Offer 04. 二维数组中的查找
剑指 Offer 04. 二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一个二维数组和一个 ...
- 【LeetCode】剑指 Offer 04. 二维数组中的查找
[LeetCode]剑指 Offer 04. 二维数组中的查找 文章目录 [LeetCode]剑指 Offer 04. 二维数组中的查找 package offer;public class Solu ...
- 《剑指Offer》刷题之最小的K个数
<剑指Offer>刷题之最小的K个数 我不知道将去向何方,但我已在路上! 时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! 题目: 给定一个数组,找出其中最小的K个数. ...
- [剑指Offer]5.二维数组中的查找
题目 在一个二维数组中,每一行都依照从左到右递增的顺序排序,每一列都依照从上到下递增的顺序排序.请完毕一个函数,输入这种一个二维数组和一个整数.推断数组中是否含有该整数. 思路 [算法系列之三十三]杨 ...
- 剑指Offer #01 二维数组中的查找(Java描述)
题目来源:牛客网-剑指Offer专题 题目地址:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一 ...
- 【剑指offer】【leetcode精选题集】【Java】剑指offer题解合集 更新中
Leetcode题集 [剑指offer][JAVA]面试题第[03]题[数组中的重复数字][HashSet] [剑指offer][JAVA]面试题第[04]题[二维数中的查找][数组] [剑指offe ...
- 剑指offer面试题[40]-数组中只出现一次的数字
题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 注意原题目要求空间复杂度为0(1). 位运算的具体思路可以参看剑指offer. class So ...
最新文章
- C++中局部类的使用
- rand和srand
- 有人顶贴,是对你的肯定
- leetcode 113. 路径总和 II
- 引:善用backtrace解决大问题
- 请举例说明@Qualifier 注解?
- python如何导入seaborn_Seaborn - 导入数据集和库
- php redis.dll php5.6,在Windows 64位下为PHP5.6.14安装redis扩展
- python基本语句及其意思_Python语法基础(1),一
- Java第十次作业 1502 马 帅
- Spring Ioc Configration - Annotation
- c++ gzip java.util.zip.gzip_java.util.zip.GZIPInputStream.close()方法示例
- 知名视频编辑工具:达芬奇剪辑调色软件 DaVinci Resolve Studio Mac v17.3.1
- 汽车品牌查询及车型大全查询
- 网络编程-在线英英词典项目
- server2003安装sqlserver以及基本操作
- Java开发者,我到底要不要学大数据开发?
- qt多级菜单_Qt高仿电脑管家界面(二):点击按钮弹出菜单
- 汇编启蒙题--by cyl老师
- dell屏幕亮度调节不了_Win10屏幕亮度调不了怎么办-百度经验