/**
* 278. 第一个错误的版本
*
* 很简单的一个二分查找题
* 注意:二分查找的退出点
* 当 左右边界值不相等的时候,继续查找
* 注意 : 答案应该是在第一个 返回为 true 的地方
* 因为返回值为 false 肯定不是答案 所以该值可以抛弃掉,left = middle + 1;
* 因为返回值为 true 不一定不是答案,该值应该保留, right = middle;
*/
public class Solution278 {
public int firstBadVersion(int n) {
int left = 1, right = n;
while (left != right) {
int middle = left + (right - left) / 2;
if (isBadVersion(middle)) {
right = middle;
} else {
left = middle + 1;
}
}
return right;
}
}
LeetCode -- 278. 第一个错误的版本
最新推荐文章于 2023-08-03 16:40:02 发布