二分,寻找第一个使得isBadVersion()函数为true的版本。
class Solution {
public:
int firstBadVersion(int n) {
if(!isBadVersion(n)) return 0;
int low = 1, high = n;
while(low < high){
int mid = low + (high - low)/2;
if(isBadVersion(mid)){
if(mid == 1 || !isBadVersion(mid-1)) return mid;
else high = mid - 1;
}else low = mid + 1;
}
return high;
}
};