思路1:递归(消耗大)

如果是奇数,return  去掉最后一位二进制数1 的个数+1

如果是偶数,return 去掉最后一位二进制数1个数

class Solution {
public:
int count(int n)
{if(n==0){return 0;}else if(n==1){return 1;}else if(n%2==0){return count(n/2);}else if(n%2==1){return count(n/2)+1;}else return 0;}vector<int> countBits(int n) {
vector<int>res;
for(int i=0;i<=n;i++)
{res.push_back(count(i));
}
return res;}
};

思路2:动态规划(效率优于递归)

方法与思路1相同,用dp数组自底向下记录递归结果

如果是奇数,return  去掉最后一位二进制数1 的个数+1

如果是偶数,return 去掉最后一位二进制数1个数

class Solution {
public:vector<int> countBits(int n) {
vector<int>dp(n+1);dp[0]=0;
if(n>=1)
dp[1]=1;
if(n>=2)
{
for(int i=2;i<=n;i++)
{if(i%2==1){dp[i]=dp[i/2]+1;}else{dp[i]=dp[i/2];}
}
}
return dp;}
};

剑指offer||3 前n个数二进制数中1的个数相关推荐

  1. 《剑指offer》-统计整数二进制表示中1的个数

    题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 直观思路就是把二进制表示从右往左统计1的个数.直接想到移位操作来迭代处理.坑点在于负数的移位操作会填充1.有人贴出了逻辑移位 ...

  2. 剑指offer第41题 和为s的两个数

    剑指offer第41题 和为s的两个数 #include<iostream> using namespace std;bool sumk(int*list,int length,int*n ...

  3. 剑指offer——面试题51:数组中重复的数字

    剑指offer--面试题51:数组中重复的数字 Solution1: 20180910更新.利用数组做一次hash映射,时间复杂度为O(n)O(n)O(n),空间复杂度O(n)O(n)O(n). cl ...

  4. 【重点】剑指offer——面试题36:数组中的逆序对

    剑指offer--面试题36:数组中的逆序对 Solution1: 20180905整理 参考网址:https://www.nowcoder.com/profile/4474567/codeBookD ...

  5. 【LeetCode】剑指 Offer 43. 1~n 整数中 1 出现的次数

    [LeetCode]剑指 Offer 43. 1-n 整数中 1 出现的次数 文章目录 [LeetCode]剑指 Offer 43. 1-n 整数中 1 出现的次数 package offer;pub ...

  6. 【LeetCode】剑指 Offer 53 - I. 在排序数组中查找数字 I

    [LeetCode]剑指 Offer 53 - I. 在排序数组中查找数字 I 文章目录 [LeetCode]剑指 Offer 53 - I. 在排序数组中查找数字 I 一.二分法 总结 一.二分法 ...

  7. 【算法】剑指 Offer 53 - II. 0~n-1中缺失的数字

    1.概述 剑指 Offer 53 - II. 0-n-1中缺失的数字 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0-n-1之内.在范围0-n-1内的n个数字中有且只有一 ...

  8. 【有返回值的回溯法】剑指offer——面试题66:矩阵中的路径(回溯法)

    剑指offer--面试题66:矩阵中的路径(回溯法) Solution:1 典型的回溯算法及代码 此题是回溯法的典型例题,思路以及代码均是书中所讲.要具体实现很有参考价值,借鉴之! 现在把书中代码贴在 ...

  9. 剑指offer——面试题64:数据流中的中位数

    剑指offer--面试题64:数据流中的中位数 Solution1: 最笨的方法了... class Solution { public:void Insert(int num) {num_strea ...

  10. 剑指offer——面试题45:圆圈中最后剩下的数字(孩子们的游戏)

    剑指offer--面试题45:圆圈中最后剩下的数字(孩子们的游戏) Solution1: 当年第一遍做时,自己想的垃圾算法 class Solution { public:int LastRemain ...

最新文章

  1. 当代艺术遇上虚拟现实:幻境视界打造基业VR美术馆
  2. pandas高级处理-交叉表与透视表
  3. 【基础练习】【拓扑排序】codevs3294 车站分级题解
  4. java文件名特殊字符_Java 8:用名字读取特殊字符的文件
  5. GitHub--创建新的分支
  6. echarts案例链接
  7. mysql checkpoint时机_MySQL Checkpoint机制
  8. 威纶通触摸屏可以解密吗_老电工选型威纶通触摸屏时的3大技巧!知道了能帮你省事不少...
  9. python写抽奖转盘_python实现大转盘抽奖效果
  10. switch日文键盘打中文_从塞尔达到动森,游戏中使用的中文字体有什么问题?
  11. vscode报错Failed to save ***,The content of the file is newer.
  12. one 主格 复数 宾格_英语主格宾格形容词性物主代词及名词性物主代词练习题.doc...
  13. 使用 EF Core Power Tools 和 CoreAdmin 在 5 分钟内将管理员 CRUD 网页添加到您的 ASP.NET Core Web 应用程序
  14. 解决phpstorm运行很卡问题
  15. Oracle Core: Essential Internals for DBAs and Developers
  16. 深入理解debuginfo
  17. 行业研究-全球与中国移动现场服务解决方案市场现状及未来发展趋势
  18. 最难初等平面几何题系列及其解法的一个介绍性材料
  19. mysql Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) fo...
  20. Sensor信号输出YUV、RGB、RAW DATA、JPEG【转】

热门文章

  1. Bailian2689 大小写字母互换【文本】(POJ NOI0107-14)
  2. explanatory variable(independent vs dependent)、design matrix
  3. Python 基础 —— from __future__ import
  4. anki 新的卡片类型_Anki 常用操作方法合集(一)常用操作1
  5. 此项目需要迁移_AndroidX 迁移,看完它应该就够了
  6. ie手机浏览器_哪款浏览器可以说成为装机必备?
  7. sublime怎么配置python环境_在Sublime Editor中配置Python环境的详细教程
  8. python安装目录结构_1.5 python安装目录介绍《Python基础开发入门到精通》
  9. python教程2019全套-Python学习路线2019升级版(课程大纲+视频教程+网盘资源下载)...
  10. python常用代码入门-最全Python算法实现资源汇总!