var lexicalOrder = function (n) {
const array = Array.from({ length: n }, () => 0)
for (let i = 1; i <= n; i++) {
array[i - 1] = i
}
return array.sort((a, b) => a.toString().localeCompare(b.toString()))
}
var lexicalOrder = function (n) {
const arr = []
const dfs = (num, n) => {
if (num > n) return
arr.push(num)
for (let i = 0; i <= 9; i++) {
dfs(num * 10 + i, n)
}
}
for (let i = 1; i <= 9; i++) {
dfs(i, n)
}
return arr
}
var lexicalOrder = function (n) {
let output = []
let currentNumber = 1
for (let i = 0; i < n; i++) {
output.push(currentNumber)
if (currentNumber * 10 <= n) {
currentNumber *= 10
} else {
if (currentNumber >= n) {
currentNumber = Math.floor(currentNumber / 10)
}
currentNumber += 1
while (currentNumber % 10 === 0) {
currentNumber = Math.floor(currentNumber / 10)
}
}
}
return output
}
console.log(lexicalOrder(13))