Minimum Index Sum of Two Lists LeetCode solution in Rust

1
impl Solution {
2
pub fn find_restaurant(list1: Vec<String>, list2: Vec<String>) -> Vec<String> {
3
use std::cmp::Ordering;
4
use std::collections::HashMap;
5

6
let map = list1.iter().zip(0..).collect::<HashMap<_, usize>>();
7
let mut res = vec![];
8
let mut min_sum = usize::MAX;
9

10
for (i2, s2) in list2.into_iter().enumerate() {
11
if let Some(&i1) = map.get(&s2) {
12
let new_sum = i1 + i2;
13
match new_sum.cmp(&min_sum) {
14
Ordering::Less => {
15
min_sum = new_sum;
16
res = vec![s2];
17
}
18
Ordering::Equal => res.push(s2),
19
_ => (),
20
}
21
}
22
if i2 > min_sum {
23
break;
24
}
25
}
26
res
27
}
28
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0