diff --git a/exercises/leetcode/two_sum.rs b/exercises/leetcode/two_sum.rs new file mode 100644 index 0000000000..5e3b0b527c --- /dev/null +++ b/exercises/leetcode/two_sum.rs @@ -0,0 +1,23 @@ +// TODO: Implement the "Two Sum" problem in Rust. +// Given an array of integers `nums` and an integer `target`, +// return the indices of the two numbers such that they add up to `target`. +// +// Hint: Try using a HashMap for O(n) time. +// Remember ownership & borrowing rules for inserting into the map. + +pub fn two_sum(nums: Vec, target: i32) -> Vec { + // Your code here + todo!() +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_two_sum() { + assert_eq!(two_sum(vec![2, 7, 11, 15], 9), vec![0, 1]); + assert_eq!(two_sum(vec![3, 2, 4], 6), vec![1, 2]); + assert_eq!(two_sum(vec![3, 3], 6), vec![0, 1]); + } +} diff --git a/rustlings-macros/info.toml b/rustlings-macros/info.toml index 516fd321fe..9bc761c778 100644 --- a/rustlings-macros/info.toml +++ b/rustlings-macros/info.toml @@ -1209,3 +1209,8 @@ name = "as_ref_mut" dir = "23_conversions" hint = """ Add `AsRef` or `AsMut` as a trait bound to the functions.""" + +[[exercises]] +name = "two_sum" +dir = "leetcode" +hint = "Use a HashMap to check if the complement exists."