LC 第一个错误的版本

LC 第一个错误的版本_第1张图片

  • 二分查找
/* 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 low = 1;
        int high = n;
        int mid;
        while(low <= high){
            mid = low +(high - low) /2;
            if(isBadVersion(mid)){
                high = mid - 1; // 收缩右边界,锁定左边界
            }else{
                low = mid + 1;
            }
        }
        // if(low > n) return -1; // 在此可以判断是否越界或者 left位置的值是否等于目标值等
        return low;
    }
}

你可能感兴趣的:(算法,算法)