剑指offer||3 前n个数二进制数中1的个数
思路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的个数相关推荐
- 《剑指offer》-统计整数二进制表示中1的个数
题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 直观思路就是把二进制表示从右往左统计1的个数.直接想到移位操作来迭代处理.坑点在于负数的移位操作会填充1.有人贴出了逻辑移位 ...
- 剑指offer第41题 和为s的两个数
剑指offer第41题 和为s的两个数 #include<iostream> using namespace std;bool sumk(int*list,int length,int*n ...
- 剑指offer——面试题51:数组中重复的数字
剑指offer--面试题51:数组中重复的数字 Solution1: 20180910更新.利用数组做一次hash映射,时间复杂度为O(n)O(n)O(n),空间复杂度O(n)O(n)O(n). cl ...
- 【重点】剑指offer——面试题36:数组中的逆序对
剑指offer--面试题36:数组中的逆序对 Solution1: 20180905整理 参考网址:https://www.nowcoder.com/profile/4474567/codeBookD ...
- 【LeetCode】剑指 Offer 43. 1~n 整数中 1 出现的次数
[LeetCode]剑指 Offer 43. 1-n 整数中 1 出现的次数 文章目录 [LeetCode]剑指 Offer 43. 1-n 整数中 1 出现的次数 package offer;pub ...
- 【LeetCode】剑指 Offer 53 - I. 在排序数组中查找数字 I
[LeetCode]剑指 Offer 53 - I. 在排序数组中查找数字 I 文章目录 [LeetCode]剑指 Offer 53 - I. 在排序数组中查找数字 I 一.二分法 总结 一.二分法 ...
- 【算法】剑指 Offer 53 - II. 0~n-1中缺失的数字
1.概述 剑指 Offer 53 - II. 0-n-1中缺失的数字 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0-n-1之内.在范围0-n-1内的n个数字中有且只有一 ...
- 【有返回值的回溯法】剑指offer——面试题66:矩阵中的路径(回溯法)
剑指offer--面试题66:矩阵中的路径(回溯法) Solution:1 典型的回溯算法及代码 此题是回溯法的典型例题,思路以及代码均是书中所讲.要具体实现很有参考价值,借鉴之! 现在把书中代码贴在 ...
- 剑指offer——面试题64:数据流中的中位数
剑指offer--面试题64:数据流中的中位数 Solution1: 最笨的方法了... class Solution { public:void Insert(int num) {num_strea ...
- 剑指offer——面试题45:圆圈中最后剩下的数字(孩子们的游戏)
剑指offer--面试题45:圆圈中最后剩下的数字(孩子们的游戏) Solution1: 当年第一遍做时,自己想的垃圾算法 class Solution { public:int LastRemain ...
最新文章
- 当代艺术遇上虚拟现实:幻境视界打造基业VR美术馆
- pandas高级处理-交叉表与透视表
- 【基础练习】【拓扑排序】codevs3294 车站分级题解
- java文件名特殊字符_Java 8:用名字读取特殊字符的文件
- GitHub--创建新的分支
- echarts案例链接
- mysql checkpoint时机_MySQL Checkpoint机制
- 威纶通触摸屏可以解密吗_老电工选型威纶通触摸屏时的3大技巧!知道了能帮你省事不少...
- python写抽奖转盘_python实现大转盘抽奖效果
- switch日文键盘打中文_从塞尔达到动森,游戏中使用的中文字体有什么问题?
- vscode报错Failed to save ***,The content of the file is newer.
- one 主格 复数 宾格_英语主格宾格形容词性物主代词及名词性物主代词练习题.doc...
- 使用 EF Core Power Tools 和 CoreAdmin 在 5 分钟内将管理员 CRUD 网页添加到您的 ASP.NET Core Web 应用程序
- 解决phpstorm运行很卡问题
- Oracle Core: Essential Internals for DBAs and Developers
- 深入理解debuginfo
- 行业研究-全球与中国移动现场服务解决方案市场现状及未来发展趋势
- 最难初等平面几何题系列及其解法的一个介绍性材料
- mysql Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) fo...
- Sensor信号输出YUV、RGB、RAW DATA、JPEG【转】
热门文章
- Bailian2689 大小写字母互换【文本】(POJ NOI0107-14)
- explanatory variable(independent vs dependent)、design matrix
- Python 基础 —— from __future__ import
- anki 新的卡片类型_Anki 常用操作方法合集(一)常用操作1
- 此项目需要迁移_AndroidX 迁移,看完它应该就够了
- ie手机浏览器_哪款浏览器可以说成为装机必备?
- sublime怎么配置python环境_在Sublime Editor中配置Python环境的详细教程
- python安装目录结构_1.5 python安装目录介绍《Python基础开发入门到精通》
- python教程2019全套-Python学习路线2019升级版(课程大纲+视频教程+网盘资源下载)...
- python常用代码入门-最全Python算法实现资源汇总!