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;
}