C语言二分查找解决 01模型
从000000011111111中找到第一个1
样例输入:
n = 5, bad = 4
输出:4
解释:
调用 isBadVersion(3) -> false
调用 isBadVersion(5) -> true
调用 isBadVersion(4) -> true
所以,4 是第一个错误的版本

int firstBadVersion(int n) {
    int i=1;
    int j=n;
    while(i<j){
        int mid=i+(j-i)/2;
        if(!isBadVersion(mid)){
            i=mid+1;
        }
        else if(isBadVersion(mid)){
            j=mid;
        }
    }
    return i;
}

姚仲泽ᯤ_ᴳ
1 声望0 粉丝