[Leetcode + Lintcode] 374. Guess Number Higher or Lower
We are playing the Guess Game. The game is as follows:
I pick a number from 1 to n. You have to guess which number I picked.
Every time you guess wrong, I'll tell you whether the number is higher or lower.
You call a pre-defined API guess(int num) which returns 3 possible results (-1, 1, or 0):
-1 : My number is lower 1 : My number is higher 0 : Congrats! You got it!
1.java
public class Solution extends GuessGame {
public int guessNumber(int n) {
int start = 0;
while(start + 1 < n){
int mid = start + (n - start)/2;
if(guess(mid) == -1){
n = mid;
}
else if(guess(mid) == 1){
start = mid;
}
else return mid;
}
if(guess(start) == 0){
return start;
}
return n;
}
}
2. python
class Solution(object):
def guessNumber(self, n):
"""
:type n: int
:rtype: int
"""
start = 0
while(start + 1 < n):
mid = start + (n-start)/2
if guess(mid) == -1:
n = mid
elif guess(mid) == 1:
start = mid
else:
return mid
if guess(start) == 0:
return start
return n

浙公网安备 33010602011771号