Leetcode 385.字典序排序
阿新 • • 發佈:2019-01-07
字典序排序
給定一個整數 n, 返回從 1 到 n 的字典順序。
例如,
給定 n =1 3,返回 [1,10,11,12,13,2,3,4,5,6,7,8,9] 。
請儘可能的優化演算法的時間複雜度和空間複雜度。 輸入的資料 n 小於等於 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,intn) { 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 }