给你一个整数 n ,按字典序返回范围 [1, n] 内所有整数。
你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。
// 输入:n = 13 // 输出:[1,10,11,12,13,2,3,4,5,6,7,8,9]
// 输入:n = 2 // 输出:[1,2]
function lexicalOrderStandard(n){
let arr = [];
let number = 1;
for(let i = 1; i<= n;i++){
arr.push(number);
if( number * 10 < n){
number *= 10
}else{
while( number % 10 === 9 || number +1 > n){
number = Math.floor(number/10)
}
number++
}
}
return arr
}