剑指offer——15.二进制中1的个数
题目:
输入一个整数,输出该数二进制表示中1的个数
知识点:
- 所有进制数底层都是二进制表示,左位移1位比除二快的多
- n = n & (n-1),可以依次从左到右一位一位将1转换成0
- 位指针左移超过32位就会变0
注意:
无
代码实现:
- 常规方法:定义flag=1,与target的每一位去与,计算结果为1的个数
- 新思路:利用 n = n & (n-1)的特点,递归至n==0
int numberOf1(int n)
{//方法1记录出现的个数//int count = 0;//unsigned int flag = 1;判断对应整数位是否为1//while (flag) //什么时候停止??? 左移超过第32位//{// if (n & flag)// count++;// flag = flag << 1;//}//return count;//方法2int count = 0;while (n != 0) {n = n & (n - 1);count += 1;}return count;
}int main()
{ int res = numberOf1(14);cout << res << endl;getchar();return 0;
}`
剑指offer——15.二进制中1的个数相关推荐
- 《LeetCode力扣练习》剑指 Offer 15. 二进制中1的个数 Java
<LeetCode力扣练习>剑指 Offer 15. 二进制中1的个数 Java 一.资源 题目: 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ...
- 【LeetCode】剑指 Offer 15. 二进制中1的个数
[LeetCode]剑指 Offer 15. 二进制中1的个数 文章目录 [LeetCode]剑指 Offer 15. 二进制中1的个数 一.逐位判断 二.巧用 n&(n−1) 一.逐位判断 ...
- 剑指 Offer 15. 二进制中1的个数 + 191. 位1的个数(n(n-1)实例)
一.题目:剑指 Offer 15. 二进制中1的个数 请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数.例如,把 9 表示成二进制是 1001,有 2 位是 1.因此, ...
- 剑指 Offer 15. 二进制中1的个数
/*** 剑指 Offer 15. 二进制中1的个数** Java Integer.bitCount 方法 源码*/public class SolutionJZ15 {public int hamm ...
- 剑指offer 15.二进制中1的个数
解法一: n & n - 1 可以让 n 最右边的 1 变为 0 ,其余位不变. class Solution { public:int hammingWeight(uint32_t n) { ...
- 【双百解法】剑指 Offer 15. 二进制中1的个数
立志用最少的代码做最高效的表达 请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数.例如,把 9 表示成二进制是 1001,有 2 位是 1.因此,如果输入 9,则该函数 ...
- 剑指 Offer 15. 二进制中1的个数 and leetcode 1905. 统计子岛屿
题目 请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数.例如,把 9 表示成二进制是 1001,有 2 位是 1.因此,如果输入 9,则该函数输出 2. 示例 1: 输 ...
- LeetCode-剑指 Offer 15. 二进制中1的个数
剑指 Offer 15. 二进制中1的个数 思路一:n>>1一直右移动,如果为1则res++ class Solution {public:int hammingWeight(uint32 ...
- [剑指Offer]12.二进制中1的个数
题目 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 思路 把一个整数减去1,再和原整数做与运算,会把整数最右边一个1变成0.那么一个整数的二进制表示中有多少个1,就可以进行多次这样 ...
最新文章
- SSL For Free 申请免费https SSL 凭证
- LintCode_173 链表插入排序
- tensorflow lstm 预测_图卷积神经网络GCN与递归结构RNN相结合的时间序列预测
- java 模块化_Java模块化方法–模块,模块,模块
- linux对目录进行操作,Linux 基础:对文件和目录进行操作的 Linux 和 Unix 命令 笔记...
- 高德地图轨迹回放_高德地图上线了一个新功能….
- flask-第一个flask程序
- C++ 五课时入门教学
- SQL Injection***技术总汇(ASP+SQL Server版)v1.0
- 11.30上海交大PMP试题每日一题
- 如何通过QQ机器人技术实现禅道bug的自动提交功能
- sql怎样与python联系_【Python】SQLAlchemy的数据对象实例能否转为一个简单的对象(切断与数据库会话的联系)...
- 直击AWE2018:当AI遇见LED,诸葛小明给光更多可能
- 阳台做成榻榻米 阳台做成书房
- Linux系统可以显示文件名,Linux系统如何显示中文目录和文件名
- python xy 官网_pythonxy 安装
- 风铃机器码修改器2.2单进程单ID硬件信息用于解除机器码硬件修改大师多开器部分游戏
- slowfast模型浅析
- 什么是iBeacon
- 解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):xxx问题