思路:就是数位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)相关推荐

  1. 剑指Offer(43)1~n整数中1出现的次数

    题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了. ...

  2. 【LeetCode笔记】剑指Offer 43. 1~n 整数中1出现的次数(Java、数位dp、偏数学)

    文章目录 题目描述 思路 && 代码 二刷 打卡第九天啦- 题目描述 有点像数字序列中的某一位 思路 && 代码 主体思路:从低到高,计算出每一位出现的1的个数. 三种 ...

  3. 《剑指offer》【剑指Offer 43.1 ~n整数中1出现的次数】

  4. 【leecode 剑指offer】 1~n整数中1出现的次数

    题目 输入一个整数 n ,求1-n这n个整数的十进制表示中1出现的次数. 例如,输入12,1-12这些整数中包含1 的数字有1.10.11和12,1一共出现了5次. 示例 示例1 输入:n = 12 ...

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

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

  6. 剑指offer:二维数组中的查找

    目录 题目 解题思路 具体代码 题目 题目链接 剑指offer:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺 ...

  7. 利用指针数组计算2个3行4列矩阵的和_[剑指 Offer] 04. 二维数组中的查找

    难度:简单 题目链接:剑指 Offer 04. 二维数组中的查找 题目描述: 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数, ...

  8. 剑指 Offer 04. 二维数组中的查找

    剑指 Offer 04. 二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一个二维数组和一个 ...

  9. 【LeetCode】剑指 Offer 16. 数值的整数次方

    [LeetCode]剑指 Offer 16. 数值的整数次方 文章目录 [LeetCode]剑指 Offer 16. 数值的整数次方 package offer;public class Soluti ...

最新文章

  1. H5 唤起 APP的解决方案
  2. 上标3下标6算法_图解堆排序算法
  3. mysql实现row_number()和row_number() over(partition by)
  4. 进击的新势力·95后短视频冲浪与消费图鉴2021
  5. linux下lvm挂载设备找不到,linux – 如何在“找不到设备:设备未清除”错误消息后创建LVM快照...
  6. Unity——Shader
  7. android 抓取webview中的所有图片_Python|任意网页中的所有图片下载
  8. Android 对Layout_weight属性完全解析以及使用ListView来实现表格
  9. Eclipse搭建SSH环境实现Struts2分页显示mysql数据库表中内容
  10. SDRAM控制器(初始化)
  11. 解决 nvcc: command not found
  12. linux环境下,mysql数据库的完美卸载!(亲测)
  13. 主要计算机硬件部件,计算机硬件各部件的主要功能
  14. 机房收费系统问题集(2)——移动登陆界面+show出子窗体
  15. 软件测试之-集成测试
  16. Java生成Excel文件并响应给页面
  17. java设置系统环境变量_设置java 环境变量
  18. python画图:小圆覆盖大圆问题
  19. Android R(11)为自定义HIDL接口添加DMFCM(六)
  20. Win10 禁止自动更新以及禁止Windows 10升级助手(Windows 10 易升)

热门文章

  1. 柠檬汁制成的电池可以开动超100千克的车子吗?
  2. 现在相亲还要体检报告了?
  3. 三角形中惊现叛徒!自己胖的像个球,却能成就世界上最快的赛车引擎......
  4. 程序员没有女朋友的原因,我终于找到了!
  5. 史上最变态高考数学题,让99%的考生献上膝盖,看完我惊了......
  6. 成年人改变生活的方式,都是从它开始
  7. 编程语言的“别样”编年史
  8. 震撼!英伟达用深度学习做图像修复,毫无ps痕迹
  9. node 16位 转24位_同时将24位和32位BMP图像顺时针旋转90度
  10. python气象数据处理与绘图_Python气象数据处理与绘图:纬高图的另一种思路