剑指 Offer 17. 打印从1到最大的n位数
题目:
思路:
【1】这道题本身直接用暴力的方式好像都能过,只要计算出最大值可以用函数的话就:(int)(Math.pow(10, n) - 1);
【2】但是这里其实没有考虑大数,就是超出Int范围之类的这种,这种就需要使用字符串。
代码展示:
普通遍历方法:
//时间1 ms击败73.8% //内存49.2 MB击败37.31% class Solution { public int[] printNumbers(int n) { int sum = 0; for(int i = 0; i < n; i++){ sum = sum*10+9; } int[] res = new int[sum]; for (int i = 0; i < sum; i++){ res[i] = i+1; } return res; } }