就是简单的二分法查找,只不过结束条件不是命中,而是知道了交界点。
// Forward declaration of isBadVersion API.
bool isBadVersion(int version);
int firstBadVersion(int n) {
long i = 1;
long j = n;
long m;
while(j-i>0){
m = (i+j)/2;
if(isBadVersion(m)){
j = m-1;
}else{
i = m+1;
}
}
if(isBadVersion(j))
return j;
else
return j+1;
}