Skip to content

Commit 6f9911b

Browse files
committed
feat: add rust solution to lc problem: No.0278
No.0278.First Bad Version
1 parent 75987fc commit 6f9911b

File tree

3 files changed

+67
-0
lines changed

3 files changed

+67
-0
lines changed

solution/0200-0299/0278.First Bad Version/README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,30 @@ func firstBadVersion(n int) int {
185185
}
186186
```
187187

188+
### **Rust**
189+
190+
```rust
191+
// The API isBadVersion is defined for you.
192+
// isBadVersion(version:i32)-> bool;
193+
// to call it use self.isBadVersion(version)
194+
195+
impl Solution {
196+
pub fn first_bad_version(&self, n: i32) -> i32 {
197+
let mut l = 1;
198+
let mut r = n;
199+
while l <= r {
200+
let mid = l + (r - l) / 2;
201+
if self.isBadVersion(mid) {
202+
r = mid - 1
203+
} else {
204+
l = mid + 1
205+
}
206+
}
207+
l
208+
}
209+
}
210+
```
211+
188212
### **...**
189213

190214
```

solution/0200-0299/0278.First Bad Version/README_EN.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,30 @@ func firstBadVersion(n int) int {
173173
}
174174
```
175175

176+
### **Rust**
177+
178+
```rust
179+
// The API isBadVersion is defined for you.
180+
// isBadVersion(version:i32)-> bool;
181+
// to call it use self.isBadVersion(version)
182+
183+
impl Solution {
184+
pub fn first_bad_version(&self, n: i32) -> i32 {
185+
let mut l = 1;
186+
let mut r = n;
187+
while l <= r {
188+
let mid = l + (r - l) / 2;
189+
if self.isBadVersion(mid) {
190+
r = mid - 1
191+
} else {
192+
l = mid + 1
193+
}
194+
}
195+
l
196+
}
197+
}
198+
```
199+
176200
### **...**
177201

178202
```
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// The API isBadVersion is defined for you.
2+
// isBadVersion(version:i32)-> bool;
3+
// to call it use self.isBadVersion(version)
4+
5+
impl Solution {
6+
pub fn first_bad_version(&self, n: i32) -> i32 {
7+
let mut l = 1;
8+
let mut r = n;
9+
while l <= r {
10+
let mid = l + (r - l) / 2;
11+
if self.isBadVersion(mid) {
12+
r = mid - 1
13+
} else {
14+
l = mid + 1
15+
}
16+
}
17+
l
18+
}
19+
}

0 commit comments

Comments
 (0)