关闭

leetcode:Lexicographical Numbers

标签: leetcode
145人阅读 评论(0) 收藏 举报
分类:

Given an integer n, return 1 - n in lexicographical order.

For example, given 13, return: [1,10,11,12,13,2,3,4,5,6,7,8,9].

Please optimize your algorithm to use less time and space. The input size may be as large as 5,000,000.

Subscribe to see which companies asked this question

给出一个数字n,列出这个数字 1- n内的字典顺序
发现了一个情况
我提交第一份递归代码的时候是没有通过的

public class Solution {
   public List<Integer> lexicalOrder(int n) {
            List<Integer> ans = new LinkedList<>();
            for(int i = 1; i < 10; ++i)
                order(n, i, ans);
            return ans;
    }

     public void order(int n, int base, List<Integer> list){
         if(base > n){
             return;
         }
         list.add(base);
         for(int i = 0; i < 10; ++i){
             order(n, base * 10 + i,list);
         }
     }
}

当改成static类变量的时候通过了

public class Solution {
   static List<Integer> ans = new LinkedList<>();
   public List<Integer> lexicalOrder(int n) {
        ans.clear();
        for(int i = 1; i < 10; ++i)
            order(n, i, ans);
        return ans;
    }

     public void order(int n, int base, List<Integer> list){
         if(base > n){
             return;
         }
         list.add(base);
         for(int i = 0; i < 10; ++i){
             order(n, base * 10 + i, list);
         }
     }
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:75160次
    • 积分:2979
    • 等级:
    • 排名:第11806名
    • 原创:210篇
    • 转载:40篇
    • 译文:9篇
    • 评论:3条
    文章分类
    最新评论