题目:

输入一个整数,输出该数二进制表示中1的个数

知识点:

  • 所有进制数底层都是二进制表示,左位移1位比除二快的多
  • n = n & (n-1),可以依次从左到右一位一位将1转换成0
  • 位指针左移超过32位就会变0

注意:

代码实现:

  1. 常规方法:定义flag=1,与target的每一位去与,计算结果为1的个数
  2. 新思路:利用 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的个数相关推荐

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

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

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

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

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

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

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

    /*** 剑指 Offer 15. 二进制中1的个数** Java Integer.bitCount 方法 源码*/public class SolutionJZ15 {public int hamm ...

  5. 剑指offer 15.二进制中1的个数

    解法一: n & n - 1 可以让 n 最右边的 1 变为 0 ,其余位不变. class Solution { public:int hammingWeight(uint32_t n) { ...

  6. 【双百解法】剑指 Offer 15. 二进制中1的个数

    立志用最少的代码做最高效的表达 请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数.例如,把 9 表示成二进制是 1001,有 2 位是 1.因此,如果输入 9,则该函数 ...

  7. 剑指 Offer 15. 二进制中1的个数 and leetcode 1905. 统计子岛屿

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

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

    剑指 Offer 15. 二进制中1的个数 思路一:n>>1一直右移动,如果为1则res++ class Solution {public:int hammingWeight(uint32 ...

  9. [剑指Offer]12.二进制中1的个数

    题目 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 思路 把一个整数减去1,再和原整数做与运算,会把整数最右边一个1变成0.那么一个整数的二进制表示中有多少个1,就可以进行多次这样 ...

最新文章

  1. SSL For Free 申请免费https SSL 凭证
  2. LintCode_173 链表插入排序
  3. tensorflow lstm 预测_图卷积神经网络GCN与递归结构RNN相结合的时间序列预测
  4. java 模块化_Java模块化方法–模块,模块,模块
  5. linux对目录进行操作,Linux 基础:对文件和目录进行操作的 Linux 和 Unix 命令 笔记...
  6. 高德地图轨迹回放_高德地图上线了一个新功能….
  7. flask-第一个flask程序
  8. C++ 五课时入门教学
  9. SQL Injection***技术总汇(ASP+SQL Server版)v1.0
  10. 11.30上海交大PMP试题每日一题
  11. 如何通过QQ机器人技术实现禅道bug的自动提交功能
  12. sql怎样与python联系_【Python】SQLAlchemy的数据对象实例能否转为一个简单的对象(切断与数据库会话的联系)...
  13. 直击AWE2018:当AI遇见LED,诸葛小明给光更多可能
  14. 阳台做成榻榻米 阳台做成书房
  15. Linux系统可以显示文件名,Linux系统如何显示中文目录和文件名
  16. python xy 官网_pythonxy 安装
  17. 风铃机器码修改器2.2单进程单ID硬件信息用于解除机器码硬件修改大师多开器部分游戏
  18. slowfast模型浅析
  19. 什么是iBeacon
  20. 解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):xxx问题

热门文章

  1. 设置mysql密码 Access denied 问题
  2. 编译fdk-aac for ios
  3. MYSQL数据库学习----查询
  4. ListView.setOnItemClickListener 点击无效
  5. 一些C#实用的方法汇总
  6. 【Java从0到架构师】SpringMVC - 返回值
  7. easy~算法刷题第三天
  8. sqlserver命令行修改用户登录密码
  9. ‘telnet‘ 不是内部或外部命令,也不是可运行的程序或批处理文件
  10. j2ee与mysql乱码过滤_J2EE中文乱码处理