美文网首页
278. First Bad Version

278. First Bad Version

作者: 衣介书生 | 来源:发表于2018-02-28 17:38 被阅读2次

题目分析

题目链接
解这道题目,我用到了二分查找的思想。特殊的地方是我们要找的是第一个 Bad Version。找到 Bad Version 的时候不是立马结束程序返回对应的位置,而是继续查找,直到锁定第一个 Bad Version。

代码

/* 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 start = 1;
        int end = n;
        while(start + 1 <end) {
            int mid = start + (end - start) / 2;
            if(isBadVersion(mid)) {
                end = mid;
            } else {
                start = mid;
            }
        }
        return isBadVersion(start) ? start : end;
    }
}

相关文章

网友评论

      本文标题:278. First Bad Version

      本文链接:https://www.haomeiwen.com/subject/ncsixftx.html