386. 字典序排数

给你一个整数 n ,按字典序返回范围 [1, n] 内所有整数。
你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。
示例 1:
输入:n = 13
示例 2:
输入:n = 2 输出:[1,2]
提示:
  • 1 <= n <= 5 * 104
通过次数27,064提交次数35,996

法 1 DFS

思路
抽象化位十叉树的先序遍历
题解
class Solution: def lexicalOrder(self, n: int) -> List[int]: res = [] for i in range(1, 10): self.dfs(res=res, start=i, n=n) return res def dfs(self, res, start, n): # 10叉树的先序遍历 if start > n: return res.append(start) for i in range(0, 10): self.dfs(res, start*10+i, n)