1#![allow(dead_code)]
2
3use std::collections::HashMap;
4
5pub fn two_sum(nums: Vec<i32>, target: i32) -> Vec<i32> {
6 let mut map = HashMap::new();
7 let mut rets = vec![];
8 for (i, num) in nums.iter().enumerate() {
9 if let Some(&j) = map.get(&(target - num)) {
10 rets.push(j);
11 rets.push(i as i32);
12 break;
13 } else {
14 map.insert(num, i as i32);
15 }
16 }
17
18 rets
19}
20
21#[cfg(test)]
22mod tests {
23 use super::*;
24
25 #[test]
26 fn test1() {
27 assert_eq!(two_sum(vec![2, 7, 11, 15], 9), vec![0, 1]);
28 }
29}