需求:
您是一位产品经理,目前正在领导一个团队开发新产品。不幸的是,你们最新版本的产品没有通过质量检查。由于每个版本都是在前一个版本的基础上开发的,所以一个坏版本之后的所有版本也是坏的。
假设你有n个版本[1,2,…你想找出第一个坏的,它会导致下面所有的坏。
你有一个API bool isBadVersion(版本),它会返回版本是否坏。实现一个函数来查找第一个坏版本。您应该尽量减少对API的调用。
测试用例:
#1: true true true true false
输出:4
#2:true false
输出:2
#3:false false
输出: 1
代码:
/ The isBadVersion API is defined in the parent class VersionControl.
boolean isBadVersion(int version); /
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 right;
}
}