Skip to content

Commit fae4bb5

Browse files
authored
Create 440-k-th-smallest-in-lexicographical-order.js
1 parent ecf6fca commit fae4bb5

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/**
2+
* @param {number} n
3+
* @param {number} k
4+
* @return {number}
5+
*/
6+
const findKthNumber = function(n, k) {
7+
let curr = 1
8+
k = k - 1
9+
while (k > 0) {
10+
let steps = calSteps(n, curr, curr + 1)
11+
if (steps <= k) {
12+
curr++
13+
k -= steps
14+
} else {
15+
curr *= 10
16+
k--
17+
}
18+
}
19+
return curr
20+
}
21+
22+
//use long in case of overflow
23+
function calSteps(n, n1, n2) {
24+
let steps = 0
25+
while (n1 <= n) {
26+
steps += Math.min(n + 1, n2) - n1
27+
n1 *= 10
28+
n2 *= 10
29+
}
30+
return steps
31+
}

0 commit comments

Comments
 (0)