Skip to content

Commit 47890e7

Browse files
committed
two-sum
1 parent 4c0658f commit 47890e7

File tree

3 files changed

+48
-6
lines changed

3 files changed

+48
-6
lines changed

Cargo.lock

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/first.rs

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
pub fn two_sum(nums: &[usize], target: usize) -> Option<[usize;2]> {
2+
let len = nums.len();
3+
if len < 2 { return None };
4+
let mut i = 0;
5+
let mut j = 1;
6+
let result: Option<[usize;2]>;
7+
loop {
8+
if nums[i] + nums[j] == target {
9+
result = Some([i, j]);
10+
break;
11+
}
12+
j = j + 1;
13+
if j == len {
14+
i = i + 1;
15+
j = i + 1;
16+
}
17+
if i == len - 1 {
18+
result = None;
19+
break;
20+
}
21+
}
22+
return result;
23+
}
24+
25+
#[cfg(test)]
26+
mod test {
27+
use super::two_sum;
28+
29+
#[test]
30+
fn test_two_sum() {
31+
assert_eq!(two_sum(&[2, 7, 11, 15], 18), Some([1,2]));
32+
33+
assert_eq!(two_sum(&[3,2,4], 6), Some([1,2]));
34+
35+
assert_eq!(two_sum(&[3,2,4], 7), Some([0,2]));
36+
37+
assert_eq!(two_sum(&[3,2,4], 8), None);
38+
39+
assert_eq!(two_sum(&[3,2,11, 3], 5), Some([0,1]));
40+
41+
assert_eq!(two_sum(&[3], 5), None);
42+
}
43+
}

src/lib.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1 @@
1-
#[cfg(test)]
2-
mod tests {
3-
#[test]
4-
fn it_works() {
5-
}
6-
}
1+
pub mod first;

0 commit comments

Comments
 (0)