大数问题(一个特别大的数需要用数组或字符串来表示)
剑指 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)));}
};
大数问题(一个特别大的数需要用数组或字符串来表示)相关推荐
- 将一个数组中的值按逆序重新排放。_六十五、下一个更大的数系列,单调栈解决方法...
「@Author:Runsen」 ❝ 编程的本质来源于算法,而算法的本质来源于数学,编程只不过将数学题进行代码化. 「---- Runsen」 ❞ 据说,放张小姐姐觉得照片可以提高阅读量,图是来源学校 ...
- 回顾艾维在苹果的15款最经典设计:最后一个特别大
回顾艾维在苹果的15款最经典设计:最后一个特别大 网易科技讯 6月28日消息,据外媒报道,苹果首席设计官乔尼·艾维(Jony Ive)宣布,他将于今年晚些时候离开公司,并将成立自己的设计公司,苹果将是 ...
- DSt:数据结构的最强学习路线之数据结构知识讲解与刷题平台、刷题集合、问题为导向的十大类刷题算法(数组和字符串、栈和队列、二叉树、堆实现、图、哈希表、排序和搜索、动态规划/回溯法/递归/贪心/分治)总
DSt:数据结构的最强学习路线之数据结构知识讲解与刷题平台.刷题集合.问题为导向的十大类刷题算法(数组和字符串.栈和队列.二叉树.堆实现.图.哈希表.排序和搜索.动态规划/回溯法/递归/贪心/分治)总 ...
- JS实现 下一个排列(下一个更大的数)
实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列. 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列). 必须 原地 修改,只允许使用额外常数 ...
- 六十五、下一个更大的数系列,单调栈解决方法
@Author:Runsen 编程的本质来源于算法,而算法的本质来源于数学,编程只不过将数学题进行代码化. ---- Runsen 据说,放张小姐姐觉得照片可以提高阅读量,图是来源学校的2020新生. ...
- 例6-下一个更大的数
问题描述: 两个不重复的数组nums1和nums2,其中nums1是nums2的子集.在nums2的相应位置找到nums1所有元素的下一个更大数字. nums1中的数字的下一个更大数字是nums2中右 ...
- c语言中二维数组中维数的计算,数组指针字符串C语言程序设计-第4章.ppt
<数组指针字符串C语言程序设计-第4章.ppt>由会员分享,可在线阅读,更多相关<数组指针字符串C语言程序设计-第4章.ppt(132页珍藏版)>请在人人文库网上搜索. 1.程 ...
- PCL:自定义创建带颜色的点云保存后rgb是一个很大的数,由x y z rgb解包为x y z r g b
由于实验需要自己需要从3D相机中读取数据并保存为pcd格式, 下面是一部分读取并保存的代码,以及最后保存结果,但是在保存为pcd的时候发现是这个样子: (如上代码为PCD文件中的头文件,TYPE中的 ...
- python查找第k大的数_寻找数组中第K大的数
给定一个数组A,要求找到数组A中第K大的数字.对于这个问题,解决方案有不少,此处我只给出三种: 方法1: 对数组A进行排序,然后遍历一遍就可以找到第K大的数字.该方法的时间复杂度为O(N*logN) ...
最新文章
- AI设计的新启发 | 什么是用户体验中台?
- javascript 计算器、动态时钟、表格复选框全选(扩展)、轮播图、36选7、随机数...
- WordPress备份的七种办法
- tcpdump抓取无效TCP标志数据包表达式
- 软考中级网络工程师学习笔记(知识点汇总)简略版
- oracle四大索引类型,oracle 索引类型
- python如何生成app_python创建app
- IOM计算机组成原理,计算机组成原理-实验1静态随机存储器实验
- 美味冰皮月饼的做法 月饼的做法
- 计算广告4——用户增长
- win10 nas搭建_Windows Server 2019搭建NAS的一些总结
- 重卡自动驾驶进入“正规战”
- w10计算机怎么恢复出厂设置路由器,win10无线路由器设置步骤图_win10重置路由器后怎么设置...
- 【043】光盘库编码
- Android TextView自动调整字体大小(官方)
- c语言程序代码有什么用,用c语言编写的代码程序是什么?
- Java: 聚合数据API接口调用城市天气预报
- 2021年低压电工及低压电工证考试
- 出口退税率6月20日准时出通知了!客户下单了!
- 【预研】关于互联网广告:半小时读懂互联网广告新生态