leetcode_rust/
two_sum.rs

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}