@@ -42,12 +42,13 @@ pub struct Solution {}
4242
4343impl Solution {
4444 pub fn two_sum ( nums : Vec < i32 > , target : i32 ) -> Vec < i32 > {
45- let mut map = HashMap :: new ( ) ;
46- for ( i , & n) in nums. iter ( ) . enumerate ( ) {
47- if let Some ( & j ) = map . get ( & ( target - n) ) {
48- return vec ! [ j , i as i32 ] ;
45+ let mut dic = HashMap :: new ( ) ;
46+ for ( idx , & n) in nums. iter ( ) . enumerate ( ) {
47+ if let Some ( & v ) = dic . get ( & ( target - n) ) {
48+ return vec ! [ v as i32 , idx as i32 ] ;
4949 }
50- map. insert ( n, i as i32 ) ;
50+
51+ dic. insert ( n, idx) ;
5152 }
5253
5354 vec ! [ ]
@@ -62,8 +63,10 @@ mod tests {
6263
6364 #[ test]
6465 fn test_1 ( ) {
65- assert ! ( Solution :: two_sum( vec![ 2 , 7 , 11 , 15 ] , 9 ) == vec![ 0 , 1 ] ) ;
66- assert ! ( Solution :: two_sum( vec![ 3 , 2 , 4 ] , 6 ) == vec![ 1 , 2 ] ) ;
67- assert ! ( Solution :: two_sum( vec![ 3 , 3 ] , 6 ) == vec![ 0 , 1 ] ) ;
66+ assert_eq ! ( Solution :: two_sum( vec![ 2 , 7 , 11 , 15 ] , 9 ) , vec![ 0 , 1 ] ) ;
67+ assert_eq ! ( Solution :: two_sum( vec![ 3 , 2 , 4 ] , 6 ) , vec![ 1 , 2 ] ) ;
68+ assert_eq ! ( Solution :: two_sum( vec![ 3 , 3 ] , 6 ) , vec![ 0 , 1 ] ) ;
69+ assert_eq ! ( Solution :: two_sum( vec![ 3 , 2 , 3 ] , 6 ) , vec![ 0 , 2 ] ) ;
70+ assert_eq ! ( Solution :: two_sum( vec![ 0 , 4 , 3 , 0 ] , 0 ) , vec![ 0 , 3 ] ) ;
6871 }
6972}
0 commit comments