1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
// 1 Two Sum
use Solution;
impl Solution {
pub fn two_sum(nums: Vec<i32>, target: i32) -> Vec<i32> {
use std::collections::HashMap;
let mut all_num: HashMap<i32,i32> = HashMap::new();
for (i, item) in nums.iter().enumerate() {
all_num.insert(*item, i as i32);
}
for (i, item) in nums.iter().enumerate() {
if let Some(x) = all_num.get(&(target - *item)) {
if *x != i as i32 {
return vec![i as i32, *x];
}
}
}
unreachable!()
}
}