278. First Bad Version

2018-02-28  本文已影响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;
    }
}
上一篇下一篇

猜你喜欢

热点阅读