File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change
1
+ fn main ( ) {
2
+ // println!("{}", Solution::new(1702766719).first_bad_version(2126753390));
3
+ // println!("{}", Solution::new(1).first_bad_version(1));
4
+ println ! ( "{}" , Solution :: new( 2 ) . first_bad_version( 2 ) ) ;
5
+ }
6
+
7
+ struct Solution {
8
+ n : i32
9
+ }
10
+
11
+ // The API isBadVersion is defined for you.
12
+ // isBadVersion(versions:i32)-> bool;
13
+ // to call it use self.isBadVersion(versions)
14
+
15
+ impl Solution {
16
+ fn new ( n : i32 ) -> Self { Self { n } }
17
+
18
+ pub fn first_bad_version ( & self , n : i32 ) -> i32 {
19
+ let mut good: i64 = 0 ;
20
+ let mut bad: i64 = n as i64 ;
21
+ while bad - good > 1 {
22
+ let mid = ( good + bad + 1 ) / 2 ;
23
+ if self . isBadVersion ( mid as i32 ) {
24
+ bad = mid;
25
+ } else {
26
+ good = mid;
27
+ }
28
+ }
29
+ bad as i32
30
+ }
31
+
32
+ fn isBadVersion ( & self , versions : i32 ) -> bool {
33
+ self . n <= versions
34
+ }
35
+ }
You can’t perform that action at this time.
0 commit comments