Skip to content

Commit 5342266

Browse files
committed
Create 1387.将整数按权重排序.js
1 parent 59a160d commit 5342266

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

1387.将整数按权重排序.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/**
2+
* @param {number} lo
3+
* @param {number} hi
4+
* @param {number} k
5+
* @return {number}
6+
*/
7+
var getKth = function(lo, hi, k) {
8+
const map = new Map();
9+
map.set(1, 0);
10+
function get(n) {
11+
if (map.has(n)) {
12+
return map.get(n);
13+
}
14+
const t = get(n % 2 === 0 ? n / 2 : n * 3 + 1) + 1;
15+
map.set(n, t);
16+
return t;
17+
}
18+
19+
const arr = [];
20+
for (let i = lo; i <= hi; i++) {
21+
arr.push({
22+
i,
23+
d: get(i),
24+
});
25+
}
26+
27+
arr.sort((a, b) => {
28+
if (a.d !== b.d) {
29+
return a.d - b.d;
30+
} else {
31+
return a.i - b.i;
32+
}
33+
});
34+
return arr[k - 1].i;
35+
};

0 commit comments

Comments
 (0)