
扫码关注微信公众号
回复“面试手册”,获取本站PDF版
回复“简历”,获取高质量简历模板
回复“加群”,加入程序员交流群
回复“电子书”,获取程序员类电子书
题目描述
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。
示例 1:
输入: n = 1
输出: [1,2,3,4,5,6,7,8,9]
说明:
- 用返回一个整数列表来代替打印
- n 为正整数
算法
(模拟) O(10^n)
模拟输出从 1 \sim 10^n – 1,求 10^n 可以用库函数 pow(x, y)
。
进阶:可以考虑大数如何处理。
时间复杂度
O(10^n)
空间复杂度
O(10^n)
C++ 代码
class Solution {
public:
vector<int> printNumbers(int n) {
vector<int> res;
for (int i = 1; i < pow(10, n); i ++ ) res.push_back(i);
return res;
}
};
Java 代码
import java.util.ArrayList;
import java.util.List;
public class Solution {
public int[] printNumbers(int n) {
List<Integer> res = new ArrayList<>();
for (int i = 1; i < Math.pow(10, n); i ++ ) {
res.add(i);
}
return res.stream().mapToInt(Integer::intValue).toArray();
}
}
Python 代码
class Solution:
def printNumbers(self, n: int) -> List[int]:
res = []
for i in range(1, 10 ** n):
res.append(i)
return res
本文由读者提供,Github地址:https://github.com/tonngw
点击面试手册,获取本站面试手册PDF完整版