文章目录
1、题目描述2、解题思路3、解题代码
1、题目描述
2、解题思路
经典的给定一个 API 来辅助二分查找的算法题,本题的关键在于:如果当前版本是正确的版本,那么第一个错误的版本肯定不是当前版本;如果当前版本是错误的版本,那么当前版本可能是第一个错误的版本。
因此,设计二分查找解决时,如果是正确的版本,新的区间就不要包含当前版本;如果是错误的版本,新的区间就得包含当前的版本。
3、解题代码
public class Solution extends VersionControl {
public int firstBadVersion(int n
) {
int left
= 1;
int right
= n
;
while (left
< right
) {
int mid
= left
+ (right
- left
) / 2;
if (isBadVersion(mid
)) {
right
= mid
;
} else {
left
= mid
+ 1;
}
}
return left
;
}
}