# leetcode:Lexicographical Numbers

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

public class Solution {
public List<Integer> lexicalOrder(int n) {
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;
}
for(int i = 0; i < 10; ++i){
order(n, base * 10 + i,list);
}
}
}

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;
}
for(int i = 0; i < 10; ++i){
order(n, base * 10 + i, list);
}
}
}

• 本文已收录于以下专栏：

## LeetCode—386. Lexicographical Numbers

386. Lexicographical Numbers Total Accepted: 1486Total Submissions: 5876Difficulty: Medium...

## Leetcode 129. Sum Root to Leaf Numbers (Medium) (cpp)

Leetcode 129. Sum Root to Leaf Numbers (Medium) (cpp)

You are given two non-empty linked lists representing two non-negative integers. The digits are stor...

LeetCode: Add Two NumbersYou are given two linked lists representing two non-negative numbers. The d...