summaryrefslogtreecommitdiff
path: root/01_two-sum/src/main.rs
blob: 827e46dde0cdd7b78eb2af32c32ac49b946038d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
fn main() {
    let nums: Vec<i32> = vec![2, 7, 11, 15];
    let target: i32 = 9;
    dbg!(Solution::two_sum(nums, target));
}

struct Solution(());
impl Solution {
    pub fn two_sum(nums: Vec<i32>, target: i32) -> Vec<i32> {
        let mut result = Vec::new();
        let mut idx = 0;

        while idx < nums.len() {
            let cur = nums[idx];
            let offset = idx + 1;
            for (i, num) in nums[offset..].into_iter().enumerate() {
                if (cur + num) == target {
                    result.push(idx as i32);
                    result.push((offset + i) as i32);
                }
            }
            idx += 1;
        }
        result
    }
}