剑指 Offer 43. 1~n 整数中 1 出现的次数(数位dp)
思路:就是数位dp,dp[idx][sum][limit]代表,到idx位,前面有sum个0,有没有limit限制;
class Solution {
public:int dp[20][50][2];int len; int pos[20];int countDigitOne(int n) {for(int i=0;i<15;i++)for(int k=0;k<50;k++) for(int j=0;j<=1;j++)dp[i][k][j]=-1;return work(n);}int work(int n){len=0;while(n){pos[++len]=n%10;n/=10;}return dfs(len,0,1);}int dfs(int idx,int sum,int limit){if(idx<=0){return sum;}if(dp[idx][sum][limit]!=-1) return dp[idx][sum][limit];int ans=0;int end;if(limit) end=pos[idx];else end=9;for(int i=0;i<=end;i++){if(i==1) {ans+=dfs(idx-1,sum+1,limit&&(i==pos[idx]));}else ans+=dfs(idx-1,sum,limit&&(i==pos[idx]));}return dp[idx][sum][limit]=ans;}
};
剑指 Offer 43. 1~n 整数中 1 出现的次数(数位dp)相关推荐
- 剑指Offer(43)1~n整数中1出现的次数
题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了. ...
- 【LeetCode笔记】剑指Offer 43. 1~n 整数中1出现的次数(Java、数位dp、偏数学)
文章目录 题目描述 思路 && 代码 二刷 打卡第九天啦- 题目描述 有点像数字序列中的某一位 思路 && 代码 主体思路:从低到高,计算出每一位出现的1的个数. 三种 ...
- 《剑指offer》【剑指Offer 43.1 ~n整数中1出现的次数】
- 【leecode 剑指offer】 1~n整数中1出现的次数
题目 输入一个整数 n ,求1-n这n个整数的十进制表示中1出现的次数. 例如,输入12,1-12这些整数中包含1 的数字有1.10.11和12,1一共出现了5次. 示例 示例1 输入:n = 12 ...
- 【LeetCode】剑指 Offer 43. 1~n 整数中 1 出现的次数
[LeetCode]剑指 Offer 43. 1-n 整数中 1 出现的次数 文章目录 [LeetCode]剑指 Offer 43. 1-n 整数中 1 出现的次数 package offer;pub ...
- 剑指offer:二维数组中的查找
目录 题目 解题思路 具体代码 题目 题目链接 剑指offer:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺 ...
- 利用指针数组计算2个3行4列矩阵的和_[剑指 Offer] 04. 二维数组中的查找
难度:简单 题目链接:剑指 Offer 04. 二维数组中的查找 题目描述: 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数, ...
- 剑指 Offer 04. 二维数组中的查找
剑指 Offer 04. 二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一个二维数组和一个 ...
- 【LeetCode】剑指 Offer 16. 数值的整数次方
[LeetCode]剑指 Offer 16. 数值的整数次方 文章目录 [LeetCode]剑指 Offer 16. 数值的整数次方 package offer;public class Soluti ...
最新文章
- H5 唤起 APP的解决方案
- 上标3下标6算法_图解堆排序算法
- mysql实现row_number()和row_number() over(partition by)
- 进击的新势力·95后短视频冲浪与消费图鉴2021
- linux下lvm挂载设备找不到,linux – 如何在“找不到设备:设备未清除”错误消息后创建LVM快照...
- Unity——Shader
- android 抓取webview中的所有图片_Python|任意网页中的所有图片下载
- Android 对Layout_weight属性完全解析以及使用ListView来实现表格
- Eclipse搭建SSH环境实现Struts2分页显示mysql数据库表中内容
- SDRAM控制器(初始化)
- 解决 nvcc: command not found
- linux环境下,mysql数据库的完美卸载!(亲测)
- 主要计算机硬件部件,计算机硬件各部件的主要功能
- 机房收费系统问题集(2)——移动登陆界面+show出子窗体
- 软件测试之-集成测试
- Java生成Excel文件并响应给页面
- java设置系统环境变量_设置java 环境变量
- python画图:小圆覆盖大圆问题
- Android R(11)为自定义HIDL接口添加DMFCM(六)
- Win10 禁止自动更新以及禁止Windows 10升级助手(Windows 10 易升)
热门文章
- 柠檬汁制成的电池可以开动超100千克的车子吗?
- 现在相亲还要体检报告了?
- 三角形中惊现叛徒!自己胖的像个球,却能成就世界上最快的赛车引擎......
- 程序员没有女朋友的原因,我终于找到了!
- 史上最变态高考数学题,让99%的考生献上膝盖,看完我惊了......
- 成年人改变生活的方式,都是从它开始
- 编程语言的“别样”编年史
- 震撼!英伟达用深度学习做图像修复,毫无ps痕迹
- node 16位 转24位_同时将24位和32位BMP图像顺时针旋转90度
- python气象数据处理与绘图_Python气象数据处理与绘图:纬高图的另一种思路