LeetCode_386 字典序排数

半城伤御伤魂 提交于 2020-02-08 07:08:53

给定一个整数 n, 返回从 1 到 n 的字典顺序。

例如,

给定 n =1 3,返回 [1,10,11,12,13,2,3,4,5,6,7,8,9] 。

请尽可能的优化算法的时间复杂度和空间复杂度。 输入的数据 n 小于等于 5,000,000。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/lexicographical-numbers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {

    //相当于十叉树的前序遍历
    public List<Integer> lexicalOrder(int n) {
        List<Integer> list = new ArrayList<Integer>();
        if(n<1) return list;
        for(int i=1;i<10;i++){
            search(i,n,list);
        }
        return list;
    }

    //num记录当前的值
    public void search(int num, int n, List<Integer> list){
        if(num>n) return;
        list.add(num);
        for(int i=0;i<10;i++){
            search(num*10+i,n,list);
        }
    } 
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!