1. 程式人生 > >Leetcode 385.字典序排序

Leetcode 385.字典序排序

字典序排序

給定一個整數 n, 返回從 到 的字典順序。

例如,

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

請儘可能的優化演算法的時間複雜度和空間複雜度。 輸入的資料 小於等於 5,000,000。

 

解題思路

用函式棧(遞迴)用來去完成字典序排序。

 

 1 import java.util.ArrayList;
 2 import java.util.List;
 3 
 4 public class Solution {
5 public List<Integer> lexicalOrder(int n) { 6 List<Integer> res = new ArrayList<>(); 7 for (int i = 1;i < 10 ;i++ ) { 8 lexicalOrder(i,res,n); 9 } 10 return res; 11 } 12 public void lexicalOrder(int num,List<Integer> res,int
n) { 13 if(num > n) return; 14 res.add(num); 15 int t = num * 10; 16 for(int i = 0;i < 10;i++) { 17 lexicalOrder(t+i,res,n); 18 } 19 } 20 }