LeetCode刷题实战278:第一个错误的版本
示例
给定 n = 5,并且 version = 4 是第一个错误的版本。
调用 isBadVersion(3) -> false
调用 isBadVersion(5) -> true
调用 isBadVersion(4) -> true
所以,4 是第一个错误的版本。
解题
/* The isBadVersion API is defined in the parent class VersionControl.
boolean isBadVersion(int version); */
public class Solution extends VersionControl {
public int firstBadVersion(int n) {
if (isBadVersion(1)) {
return 1;
}
int max = n;
int min = 1;
int record = 0;
while (min < max) {
record = max / 2 + min / 2;
boolean rec = isBadVersion(record);
if (rec) {
max = record;
} else {
min = record + 1;
}
}
return min;
}
}
评论