use std::collections::HashMap; fn two_sum(nums: Vec<i32>, target: i32) -> Vec<i32> { let mut num_map: HashMap<i32, i32> = HashMap::new(); for (index, num) in nums.iter().enumerate() { let complement = target - num; if let Some(&complement_index) = num_map.get(&complement) { return vec![complement_index as i32, index as i32]; } num_map.insert(*num, index as i32); } vec![] } fn main() { let nums = vec![2, 7, 11, 15]; let target = 9; let result = two_sum(nums, target); println!("Indices: {:?}", result); // Output: Indices: [0, 1] let nums2 = vec![3, 2, 4]; let target2 = 6; let result2 = two_sum(nums2, target2); println!("Indices: {:?}", result2); // Output: Indices: [1, 2] let nums3 = vec![3, 3]; let target3 = 6; let result3 = two_sum(nums3, target3); println!("Indices: {:?}", result3); // Output: Indices: [0, 1] }