@@ -4,16 +4,14 @@ use std::collections::BinaryHeap;
4
4
#[ derive( Copy , Clone , PartialEq , PartialOrd , Eq , Ord , Hash ) ]
5
5
struct State {
6
6
distance : usize ,
7
- num : i32
7
+ num : i32 ,
8
8
}
9
9
10
10
impl State {
11
-
12
11
fn new ( num : i32 , x : i32 ) -> Self {
13
12
let distance = i32:: abs ( num - x) as usize ;
14
13
State { distance, num }
15
14
}
16
-
17
15
}
18
16
19
17
/// Given a sorted integer array `arr`, two integers `k` and `x`, return the
@@ -26,7 +24,6 @@ impl State {
26
24
struct Solution ;
27
25
28
26
impl Solution {
29
-
30
27
pub fn find_closest_elements ( arr : Vec < i32 > , k : i32 , x : i32 ) -> Vec < i32 > {
31
28
let mut min_heap = BinaryHeap :: new ( ) ;
32
29
for num in arr {
@@ -41,7 +38,6 @@ impl Solution {
41
38
result. sort ( ) ;
42
39
result
43
40
}
44
-
45
41
}
46
42
47
43
#[ cfg( test) ]
@@ -50,20 +46,19 @@ mod tests {
50
46
51
47
#[ test]
52
48
fn example_1 ( ) {
53
- let arr = vec ! [ 1 , 2 , 3 , 4 , 5 ] ;
49
+ let arr = vec ! [ 1 , 2 , 3 , 4 , 5 ] ;
54
50
let k = 4 ;
55
51
let x = 3 ;
56
52
let result = Solution :: find_closest_elements ( arr, k, x) ;
57
- assert_eq ! ( result, vec![ 1 , 2 , 3 , 4 ] ) ;
53
+ assert_eq ! ( result, vec![ 1 , 2 , 3 , 4 ] ) ;
58
54
}
59
55
60
56
#[ test]
61
57
fn example_2 ( ) {
62
- let arr = vec ! [ 1 , 2 , 3 , 4 , 5 ] ;
58
+ let arr = vec ! [ 1 , 2 , 3 , 4 , 5 ] ;
63
59
let k = 4 ;
64
60
let x = -1 ;
65
61
let result = Solution :: find_closest_elements ( arr, k, x) ;
66
- assert_eq ! ( result, vec![ 1 , 2 , 3 , 4 ] ) ;
62
+ assert_eq ! ( result, vec![ 1 , 2 , 3 , 4 ] ) ;
67
63
}
68
-
69
64
}
0 commit comments