Skip to content

Commit 0d2b52e

Browse files
committed
feat: add solutions to lc problem: No.0374
No.0374.Guess Number Higher or Lower
1 parent a211717 commit 0d2b52e

File tree

4 files changed

+155
-0
lines changed

4 files changed

+155
-0
lines changed

solution/0300-0399/0374.Guess Number Higher or Lower/README.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,61 @@ public class Solution : GuessGame {
207207
}
208208
```
209209

210+
### **TypeScript**
211+
212+
```ts
213+
/**
214+
* Forward declaration of guess API.
215+
* @param {number} num your guess
216+
* @return -1 if num is lower than the guess number
217+
* 1 if num is higher than the guess number
218+
* otherwise return 0
219+
* var guess = function(num) {}
220+
*/
221+
222+
function guessNumber(n: number): number {
223+
let l = 1;
224+
let r = n;
225+
while (l < r) {
226+
const mid = (l + r) >>> 1;
227+
if (guess(mid) <= 0) {
228+
r = mid;
229+
} else {
230+
l = mid + 1;
231+
}
232+
}
233+
return l;
234+
}
235+
```
236+
237+
### **Rust**
238+
239+
```rust
240+
/**
241+
* Forward declaration of guess API.
242+
* @param num your guess
243+
* @return -1 if num is lower than the guess number
244+
* 1 if num is higher than the guess number
245+
* otherwise return 0
246+
* unsafe fn guess(num: i32) -> i32 {}
247+
*/
248+
249+
impl Solution {
250+
unsafe fn guessNumber(n: i32) -> i32 {
251+
let mut l = 1;
252+
let mut r = n;
253+
loop {
254+
let mid = l + (r - l) / 2;
255+
match guess(mid) {
256+
-1 => r = mid - 1,
257+
1 => l = mid + 1,
258+
_ => break mid,
259+
}
260+
}
261+
}
262+
}
263+
```
264+
210265
### **...**
211266

212267
```

solution/0300-0399/0374.Guess Number Higher or Lower/README_EN.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,61 @@ public class Solution : GuessGame {
181181
}
182182
```
183183

184+
### **TypeScript**
185+
186+
```ts
187+
/**
188+
* Forward declaration of guess API.
189+
* @param {number} num your guess
190+
* @return -1 if num is lower than the guess number
191+
* 1 if num is higher than the guess number
192+
* otherwise return 0
193+
* var guess = function(num) {}
194+
*/
195+
196+
function guessNumber(n: number): number {
197+
let l = 1;
198+
let r = n;
199+
while (l < r) {
200+
const mid = (l + r) >>> 1;
201+
if (guess(mid) <= 0) {
202+
r = mid;
203+
} else {
204+
l = mid + 1;
205+
}
206+
}
207+
return l;
208+
}
209+
```
210+
211+
### **Rust**
212+
213+
```rust
214+
/**
215+
* Forward declaration of guess API.
216+
* @param num your guess
217+
* @return -1 if num is lower than the guess number
218+
* 1 if num is higher than the guess number
219+
* otherwise return 0
220+
* unsafe fn guess(num: i32) -> i32 {}
221+
*/
222+
223+
impl Solution {
224+
unsafe fn guessNumber(n: i32) -> i32 {
225+
let mut l = 1;
226+
let mut r = n;
227+
loop {
228+
let mid = l + (r - l) / 2;
229+
match guess(mid) {
230+
-1 => r = mid - 1,
231+
1 => l = mid + 1,
232+
_ => break mid,
233+
}
234+
}
235+
}
236+
}
237+
```
238+
184239
### **...**
185240

186241
```
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/**
2+
* Forward declaration of guess API.
3+
* @param num your guess
4+
* @return -1 if num is lower than the guess number
5+
* 1 if num is higher than the guess number
6+
* otherwise return 0
7+
* unsafe fn guess(num: i32) -> i32 {}
8+
*/
9+
10+
impl Solution {
11+
unsafe fn guessNumber(n: i32) -> i32 {
12+
let mut l = 1;
13+
let mut r = n;
14+
loop {
15+
let mid = l + (r - l) / 2;
16+
match guess(mid) {
17+
-1 => r = mid - 1,
18+
1 => l = mid + 1,
19+
_ => break mid,
20+
}
21+
}
22+
}
23+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/**
2+
* Forward declaration of guess API.
3+
* @param {number} num your guess
4+
* @return -1 if num is lower than the guess number
5+
* 1 if num is higher than the guess number
6+
* otherwise return 0
7+
* var guess = function(num) {}
8+
*/
9+
10+
function guessNumber(n: number): number {
11+
let l = 1;
12+
let r = n;
13+
while (l < r) {
14+
const mid = (l + r) >>> 1;
15+
if (guess(mid) <= 0) {
16+
r = mid;
17+
} else {
18+
l = mid + 1;
19+
}
20+
}
21+
return l;
22+
}

0 commit comments

Comments
 (0)