Skip to the content.

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