386. 字典序排数
给你一个整数
n
,按字典序返回范围 [1, n]
内所有整数。你必须设计一个时间复杂度为
O(n)
且使用 O(1)
额外空间的算法。示例 1:
输入:n = 13
示例 2:
输入:n = 2 输出:[1,2]
提示:
1 <= n <= 5 * 10
4
通过次数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)