leetcode-374 猜数字大小

it2025-05-18  3

第一天,二分查找,需要注意的是中间值应该用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; }

};

最新回复(0)