题目:
给定一个整数 n, 返回从 1 到 n 的字典顺序。
例如,
给定 n =13,返回 [1,10,11,12,13,2,3,4,5,6,7,8,9] 。
请尽可能的优化算法的时间复杂度和空间复杂度。 输入的数据 n 小于等于 5,000,000。
方法一 递归
时间复杂度:O(n)
空间复杂度:O(n)
var lexicalOrder = function(n){
let res = [];
let dfs = (cur)=>{
if(cur > n)
return
else{
res.push(cur)
for(let i = 0; i < 10; i++){
if(10 * cur + i > n)
return;
dfs(10 * cur + i)
}
}
}
for(let i = 1; i < 10; i++){
dfs(i)
}
return res
}