leetcode_rust/
two_sum_2.rs

1#![allow(dead_code)]
2
3pub fn two_sum(numbers: Vec<i32>, target: i32) -> Vec<i32> {
4    let mut i = 0;
5    let mut j = numbers.len() - 1;
6    while i < j {
7        let sum = numbers[i] + numbers[j];
8        if sum == target {
9            return vec![(i + 1) as i32, (j + 1) as i32];
10        } else if sum > target {
11            j -= 1;
12        } else {
13            i += 1;
14        }
15    }
16
17    vec![]
18}
19
20#[cfg(test)]
21mod tests {
22    use super::*;
23
24    #[test]
25    fn test1() {
26        assert_eq!(two_sum(vec![2, 7, 11, 15], 9), vec![1, 2]);
27    }
28}