leetcode [386] 字典序排数
Contact me:
Blog -> https://cugtyt.github.io/blog/index
Email -> cugtyt@qq.com
GitHub -> Cugtyt@GitHub
给定一个整数 n, 返回从 1 到 n 的字典顺序。
例如,
给定 n =1 3,返回 [1,10,11,12,13,2,3,4,5,6,7,8,9] 。
请尽可能的优化算法的时间复杂度和空间复杂度。 输入的数据 n 小于等于 5,000,000。
来自题解:
先序遍历10叉树。
class Solution:
def lexicalOrder(self, n: int) -> List[int]:
ans = []
def core(cur, n):
if int(cur) <= n:
ans.append(int(cur))
else:
return
for i in range(10):
core(cur + str(i), n)
for i in range(1, 10):
core(str(i), n)
return ans