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

示例 1:

输入: n = 1
输出: [1,2,3,4,5,6,7,8,9]
1
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
  • 时间复杂度:O(10^n)
  • 空间复杂度:O(10^n)
最后更新时间: 9/13/2021, 11:19:53 AM