Skip to content

Commit 2a07c84

Browse files
authored
Create 2561_rearranging_fruits.rs
1 parent 7f20875 commit 2a07c84

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

rust/hard/2561_rearranging_fruits.rs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
use std::collections::HashMap;
2+
3+
impl Solution {
4+
pub fn min_cost(basket1: Vec<i32>, basket2: Vec<i32>) -> i64 {
5+
let mut freq = HashMap::new();
6+
let mut m = i32::MAX;
7+
for &b in &basket1 {
8+
*freq.entry(b).or_insert(0) += 1;
9+
m = m.min(b);
10+
}
11+
for &b in &basket2 {
12+
*freq.entry(b).or_insert(0) -= 1;
13+
m = m.min(b);
14+
}
15+
16+
let mut merge = vec![];
17+
for (&k, &v) in freq.iter() {
18+
if v % 2 != 0 {
19+
return -1;
20+
}
21+
for _ in 0..((v as i32).abs() / 2) {
22+
merge.push(k);
23+
}
24+
}
25+
26+
merge.sort_unstable();
27+
let res: i64 = merge.iter().take(merge.len() / 2).map(|&x| i64::from(x.min(2 * m))).sum();
28+
res
29+
}
30+
}

0 commit comments

Comments
 (0)