Skip to content

Commit 673dbb4

Browse files
committed
Create 1387-sort-integers-by-the-power-value.rs
1 parent e2278b9 commit 673dbb4

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
pub fn get_kth(lo: i32, hi: i32, k: i32) -> i32 {
2+
use std::collections::HashMap;
3+
let mut mmp = HashMap::new();
4+
for i in lo..=hi {
5+
let mut tmp = i;
6+
let mut count = 0;
7+
while tmp != 1 {
8+
if tmp % 2 == 0 {
9+
tmp /= 2;
10+
} else {
11+
tmp = 3 * tmp + 1;
12+
}
13+
count += 1;
14+
}
15+
mmp.entry(count).or_insert(Vec::new()).push(i);
16+
}
17+
let mut mmp_vec: Vec<_> = mmp.iter().collect();
18+
mmp_vec.sort_by(|a, b|a.0.cmp(b.0));
19+
*mmp_vec.into_iter().map(|e|e.1).collect::<Vec<_>>().into_iter().flatten().collect::<Vec<_>>()[k as usize - 1]
20+
}
21+
22+
fn main() {
23+
println!("{:?}", get_kth(12, 15, 2));
24+
}

0 commit comments

Comments
 (0)