输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。
示例 1:
输入: n = 1
输出: [1,2,3,4,5,6,7,8,9]
1
2
2
说明: 用返回一个整数列表来代替打印 n 为正整数
# 解题方案
思路:
- 标签: 数组
- 整体思路: 首先求出要打印的数字范围,然后再从1开始打印到最大的数字 算法流程:
- 1 初始化 sum = 1
- 2 循环遍历乘以10 让 sum 变为边界值
- 3 新建 res 数组,大小为 sum - 1
- 4 从 1 开始打印 直到sum-1 为止
/**
* @param {number} n
* @return {number[]}
*/
var printNumbers = function(n) {
let sum = 1;
for (let i = 0; i < n; i++) {
sum *= 10;
}
let res = [];
for(let i = 0; i < sum - 1; i++){
res[i] = i + 1;
}
return res;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
- 时间复杂度:O(10^n)
- 空间复杂度:O(10^n)