题目
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。
示例 1:
输入: n = 1
输出: [1,2,3,4,5,6,7,8,9]
说明:
用返回一个整数列表来代替打印
n 为正整数
思路
在力扣里这道题不用考虑大数。但是还是想自己写一个以备不虞。
重点:
- 用
string
处理大数。 - 处理每一位时,将
int
转换为char
。 - 用
递归+分治
的思想生成位数n
对应的全排列
。 - 将生成的全排列依次压入
vector<int>
中,按题目要求返回整数列表。
细节:
-
第一点无需赘述。
-
关于第二点:
我们知道 string
每一位下标对应的元素其类型都是 c