剑指 Offer 17. 打印从1到最大的n位数

输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。

示例 1:

输入: n = 1
输出: [1,2,3,4,5,6,7,8,9]

说明:

  • 用返回一个整数列表来代替打印
  • n 为正整数

递归实现排列的模板

// 枚举所有情况 1-n位 每位都是0-9void dfs(int end, int index) {if (index == end) {save(); return;}for (int i = 0; i <= 9; ++i) {s[index] = i + '0';dfs(end, index + 1);}}

C++代码

class Solution {
private:
//考虑大数问题 n特别大的时候 每个数需要用string或者数组来表示
//预设一个存n位数的字符串vector<int> nums;string s;
public:vector<int> printNumbers(int n) {s.resize(n, '0');dfs(n, 0);return nums;}// 枚举所有情况 1-n位 每位都是0-9void dfs(int end, int index) {if (index == end) {save(); return;}for (int i = 0; i <= 9; ++i) {s[index] = i + '0';dfs(end, index + 1);}}// 去除首部0void save() {int ptr = 0;while (ptr < s.size() && s[ptr] == '0') ptr++;//找到第一个非零位置if (ptr != s.size())nums.emplace_back(stoi(s.substr(ptr)));}
};

大数问题(一个特别大的数需要用数组或字符串来表示)相关推荐

  1. 将一个数组中的值按逆序重新排放。_六十五、下一个更大的数系列,单调栈解决方法...

    「@Author:Runsen」 ❝ 编程的本质来源于算法,而算法的本质来源于数学,编程只不过将数学题进行代码化. 「---- Runsen」 ❞ 据说,放张小姐姐觉得照片可以提高阅读量,图是来源学校 ...

  2. 回顾艾维在苹果的15款最经典设计:最后一个特别大

    回顾艾维在苹果的15款最经典设计:最后一个特别大 网易科技讯 6月28日消息,据外媒报道,苹果首席设计官乔尼·艾维(Jony Ive)宣布,他将于今年晚些时候离开公司,并将成立自己的设计公司,苹果将是 ...

  3. DSt:数据结构的最强学习路线之数据结构知识讲解与刷题平台、刷题集合、问题为导向的十大类刷题算法(数组和字符串、栈和队列、二叉树、堆实现、图、哈希表、排序和搜索、动态规划/回溯法/递归/贪心/分治)总

    DSt:数据结构的最强学习路线之数据结构知识讲解与刷题平台.刷题集合.问题为导向的十大类刷题算法(数组和字符串.栈和队列.二叉树.堆实现.图.哈希表.排序和搜索.动态规划/回溯法/递归/贪心/分治)总 ...

  4. JS实现 下一个排列(下一个更大的数)

    实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列. 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列). 必须 原地 修改,只允许使用额外常数 ...

  5. 六十五、下一个更大的数系列,单调栈解决方法

    @Author:Runsen 编程的本质来源于算法,而算法的本质来源于数学,编程只不过将数学题进行代码化. ---- Runsen 据说,放张小姐姐觉得照片可以提高阅读量,图是来源学校的2020新生. ...

  6. 例6-下一个更大的数

    问题描述: 两个不重复的数组nums1和nums2,其中nums1是nums2的子集.在nums2的相应位置找到nums1所有元素的下一个更大数字. nums1中的数字的下一个更大数字是nums2中右 ...

  7. c语言中二维数组中维数的计算,数组指针字符串C语言程序设计-第4章.ppt

    <数组指针字符串C语言程序设计-第4章.ppt>由会员分享,可在线阅读,更多相关<数组指针字符串C语言程序设计-第4章.ppt(132页珍藏版)>请在人人文库网上搜索. 1.程 ...

  8. PCL:自定义创建带颜色的点云保存后rgb是一个很大的数,由x y z rgb解包为x y z r g b

    由于实验需要自己需要从3D相机中读取数据并保存为pcd格式, 下面是一部分读取并保存的代码,以及最后保存结果,但是在保存为pcd的时候发现是这个样子:  (如上代码为PCD文件中的头文件,TYPE中的 ...

  9. python查找第k大的数_寻找数组中第K大的数

    给定一个数组A,要求找到数组A中第K大的数字.对于这个问题,解决方案有不少,此处我只给出三种: 方法1: 对数组A进行排序,然后遍历一遍就可以找到第K大的数字.该方法的时间复杂度为O(N*logN) ...

最新文章

  1. AI设计的新启发 | 什么是用户体验中台?
  2. javascript 计算器、动态时钟、表格复选框全选(扩展)、轮播图、36选7、随机数...
  3. WordPress备份的七种办法
  4. tcpdump抓取无效TCP标志数据包表达式
  5. 软考中级网络工程师学习笔记(知识点汇总)简略版
  6. oracle四大索引类型,oracle 索引类型
  7. python如何生成app_python创建app
  8. IOM计算机组成原理,计算机组成原理-实验1静态随机存储器实验
  9. 美味冰皮月饼的做法 月饼的做法
  10. 计算广告4——用户增长
  11. win10 nas搭建_Windows Server 2019搭建NAS的一些总结
  12. 重卡自动驾驶进入“正规战”
  13. w10计算机怎么恢复出厂设置路由器,win10无线路由器设置步骤图_win10重置路由器后怎么设置...
  14. 【043】光盘库编码
  15. Android TextView自动调整字体大小(官方)
  16. c语言程序代码有什么用,用c语言编写的代码程序是什么?
  17. Java: 聚合数据API接口调用城市天气预报
  18. 2021年低压电工及低压电工证考试
  19. 出口退税率6月20日准时出通知了!客户下单了!
  20. 【预研】关于互联网广告:半小时读懂互联网广告新生态

热门文章

  1. 计算机类期刊的影响因子
  2. 17.Node.js 回调函数--异步编程
  3. SpringBoot非官方教程 | 第二篇:SpringBoot配置文件详解
  4. 数据蒋堂 | 怎样看待存储过程的移植困难
  5. CentOS 6.5 搭建NFS文件服务器
  6. 响应式Web设计(一):响应式Web设计的背景
  7. POJ-1459 Power Network 网络流
  8. nyoj 174 Max Sequence(最大子串和变形)
  9. poj 1948(搜索+剪枝)
  10. golang之iota