//C++
Solution {
public:
int guessNumber(int n) {
int low = 0,high = n,mid;
while(low<=high){
mid = low + (high-low)/2;//不发生溢出
//mid = (low + high)/2; //发生溢出
if(guess(mid)==-1){
high = mid -1;
}
else if(guess(mid)==1){
low = mid + 1;
}
else{
return mid;
}
}
}
};
#####python
class Solution(object):
def guessNumber(self, n):
"""
:type n: int
:rtype: int
"""
low,high = 0,n
while low<=high:
mid = (low+high)//2
if guess(mid) == -1:
high = mid - 1
elif guess(mid)==1:
low = mid + 1
else:
return mid