Guess Number Higher or Lower

来源:互联网 发布:手机淘宝排名规则 编辑:程序博客网 时间:2024/05/16 23:33

题意是如果给出的数比猜的数大,返回1,一开始理解错了

用二分法来做,mid = (left+right)/2这种写法行不通,因为int越界会导致死循环,改为mid = left + (right-left)/2

class Solution {public:int guessNumber(int n) {int left = 1;int right = n;int mid;while (left<=right){mid = left+(right-left) / 2;switch (guess(mid)){case -1:right = mid - 1;break;case 1:left = mid + 1;break;case 0:return mid;break;}}return 0;}};


0 0