LandscapeMi

landscapemi的博客

leetcode :Binary Search: First Bad Version(278)

You are a product manager and currently leading a team to develop a new product. Unfortunately, the latest version of your product fails the quality check. Since each version is developed based on the previous version, all the versions after a bad version are also bad.

Suppose you have n versions [1, 2, …, n] and you want to find out the first bad one, which causes all the following ones to be bad.

You are given an API bool isBadVersion(version) which will return whether version is bad. Implement a function to find the first bad version. You should minimize the number of calls to the API.


bool isBadVersion(int version);

class Solution {
public:
    //Binary search
    int firstBadVersion(int n) {
        int low=1, high=n;
        while(low <= high) {
            int mid = low + (high - low)/2;
            if (isBadVersion(mid) && !isBadVersion(mid-1)){
                return mid;
            }
            if (isBadVersion(mid)) {
                high = mid - 1;
            }else{
                low = mid + 1;
            }
        }
        return -1;
    }
};
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mijian1207mijian/article/details/52346361
个人分类: leetcode(c++)
上一篇leetcode :Binary Search: H-Index IIe(275)
下一篇leetcode :Binary Search:Russian Doll Envelopes(354)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭