面试题17. 打印从1到最大的n位数(一般)

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

示例 1:

输入: n = 1
输出: [1,2,3,4,5,6,7,8,9]

说明:

用返回一个整数列表来代替打印
n 为正整数

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/da-yin-cong-1dao-zui-da-de-nwei-shu-lcof

思路1:

常规思路,找到最大的数,按序用数组保存输出即可,但这里没有考虑到大数情况

思路2:

大数 情况,需要将long型转成char输出,这里需要考虑,未写

代码1:

1
2
3
4
5
6
7
8
9
10
class Solution {
public int[] printNumbers(int n) {
//是否需要考虑大数问题
int max = (int)Math.pow(10,n);
int[] ans = new int[max-1];
for(int i=1;i<max;i++)
ans[i-1]=i;
return ans;
}
}