剑指 Offer 17. 打印从1到最大的n位数
链接:https://leetcode-cn.com/problems/da-yin-cong-1dao-zui-da-de-nwei-shu-lcof/
主要就是要考虑n很大的时候,用字符串代替数值打印即可
class Solution:
def printNumbers(self, n: int) -> List[int]:
# return [i for i in range(1, 10**n)]
def dfs(cur):
if cur == n:
cur_num = int(''.join(num)) #去掉字符串前面的0
if cur_num != 0:
res.append(cur_num)
return
for i in range(10):
num[cur] = str(i)
dfs(cur+1)
num = ['0'] * n
res = []
dfs(0)
return res