第一天,二分查找,需要注意的是中间值应该用left+(right-left)/2,用来防止大数溢出,且每次判断mid=left+1或者right-1,防止死循环
/**
Forward declaration of guess API.@param num your guess@return -1 if num is lower than the guess number 1 if num is higher than the guess number
otherwise return 0
int guess(int num); */
class Solution { public: int guessNumber(int n) { int left=1; int right=n; while(right>=left){ int mid=left+(right-left)/2; if(guess(mid)==0){ return mid; }else if(guess(mid)==1){ left=mid+1; }else{ right=mid-1; } } return right; }
};