1 问题
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。
- 用返回一个整数列表来代替打印
- n 为正整数,0 < n <= 5
示例1
输入:1
返回值:[1,2,3,4,5,6,7,8,9]
2 答案
自己写的
class Solution:
def printNumbers(self , n: int) -> List[int]:
i = 1
res = []
while i <= int('9'*n):
res.append(i)
i+=1
return res
官方解,数组输出
step 1:从1开始连乘10或者直接用次方计算
1
0
n
10^n
10n
step 2:从1遍历到
1
0
n
−
1
10^n-1
10n−1,将所有数字顺序加入数组。
class Solution:
def printNumbers(self , n: int) -> List[int]:
res = []
#找到该n+1位数的最小数字
end = 10 ** n
#从1遍历到n+1位数的最小数字输出
for i in range(1, end):
res.append(i)
return res
https://www.nowcoder.com/share/jump/9318638301698417951150