剑指 Offer 17(数组3).打印从 1 到最大的 n 位数
问题描述:
输入数字 n
,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。
示例:
输入: n = 1
输出: [1,2,3,4,5,6,7,8,9]
解题思路:
算法过程:
- 明确要求,数组长度为10的n次方减1;
- 建立一个满足问题要求的数组;
- 将数组元素从1到数组长度的值逐一填入到数组中;
代码实现:将时间缩短了一半
class Solution {
public int[] printNumbers(int n) {
//建立一个满足要求的数组长度
int number = (int)Math.pow(10,n) - 1;
int[] array = new int[number];
//将数组元素逐一填入
for(int i = 1;i < number + 1;i++){
array[i - 1] = i;
}
return array;
}
}