Skip to content

Commit 65662f5

Browse files
authored
Create 668-kth-smallest-number-in-multiplication-table.js
1 parent 7f69959 commit 65662f5

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/**
2+
* @param {number} m
3+
* @param {number} n
4+
* @param {number} k
5+
* @return {number}
6+
*/
7+
const findKthNumber = function(m, n, k) {
8+
let left = 1;
9+
let right = m * n;
10+
while (left < right) {
11+
const mid = Math.floor((left + right) / 2);
12+
const nSmaller = count(m, n, mid);
13+
if (nSmaller >= k) {
14+
right = mid;
15+
} else {
16+
left = mid + 1;
17+
}
18+
}
19+
return left;
20+
};
21+
22+
function count(m, n, target) {
23+
let nSmaller = 0;
24+
let j = n;
25+
for (let i = 1; i <= m; i++) {
26+
while (i * j > target) {
27+
j -= 1;
28+
}
29+
nSmaller += j;
30+
}
31+
return nSmaller;
32+
}

0 commit comments

Comments
 (0)