剑指offer_17_打印从1到最大的n位数【javascript】

74 阅读1分钟

题目

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

题解

数学

/**
 * @param {number} n
 * @return {number[]}
 */

// max = 10^n − 1 : n位数的最大数
var printNumbers = function(n) {
    let max = Math.pow(10, n) - 1;
    let res = new Array(max);
    for (let i = 0; i < max; i++) {
        res[i] = i + 1;
    }
    return res;
};

复杂度分析:

  • 时间复杂度 O(10^n):生成长度为 10^n的列表需使用 O(10^n)时间。
  • 空间复杂度 O(1):建立列表需使用 O(1)大小的额外空间。

引用

  • 剑指offer书籍
  • 力扣题解