剑指 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]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/da-yin-cong-1dao-zui-da-de-nwei-shu-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解思路
1>源代码
class Solution {
public int[] printNumbers(int n) {
double len = Math.pow(10, n);
int mi = (int)len;
int[] res = new int[mi-1];
for(int i=0;i<mi-1;i++){
res[i] = i+1;
}
return res;
}
}
2>算法介绍
由于java的数组并不可以像python那样随心所欲的调用.append(),所以我们需要确定数组大小。当n=1的时候,数组内容应该就是1-9,所以大小为9;当n=2的时候,数组内容应该是1-99,大小为99…所以数组大小应为10^n-1.
确定了这点之后我们直接构造数组就可以啦。