leetcode 278. 第一个错误的版本(Java版)
/* The isBadVersion API is defined in the parent class VersionControl.
boolean isBadVersion(int version); */
public class Solution extends VersionControl {
public int firstBadVersion(int n) {
return (int) find(1, n);
}
public long find(long left, long right) {
if (left == right) return left;
long mid = left + (right - left) / 2;
if (isBadVersion((int) mid)) {
return find(left, mid);
} else {
//因为目的是找到false,所以让true的mid+1,而非让false的mid-1
return find(mid + 1, right);
}
}
}