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