其他分享
首页 > 其他分享> > 11/3 <binary search>

11/3 <binary search>

作者:互联网

278. First Bad Version

二分法,如果isBadVersion返回true则坏版本在左边,right = mid,否则 left = mid + 1。

注意溢出问题 left+(right - left) /2

最后return left right均可

/* The isBadVersion API is defined in the parent class VersionControl.
      boolean isBadVersion(int version); */

public class Solution extends VersionControl {
    public int firstBadVersion(int n) {
        int left = 1, right = n;
        while(left < right){
            int mid = left + (right - left) / 2;
            if(isBadVersion(mid)) right = mid;
            else left = mid + 1;
        }
        return left;
    }
}

 

标签:11,right,int,isBadVersion,mid,VersionControl,left
来源: https://www.cnblogs.com/Afei-1123/p/11785610.html