LeetCode278:First Bad Version

强颜欢笑 提交于 2019-12-08 22:25:43

需求:
您是一位产品经理,目前正在领导一个团队开发新产品。不幸的是,你们最新版本的产品没有通过质量检查。由于每个版本都是在前一个版本的基础上开发的,所以一个坏版本之后的所有版本也是坏的。
假设你有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;

}

}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!