🌗 278. 第一个错误的版本

吞佛童子2022年10月10日
  • algorithm
  • Number
  • 二分
小于 1 分钟

🌗 278. 第一个错误的版本

难度: 🌗

问题描述

img_9.png


解法

/* The isBadVersion API is defined in the parent class VersionControl.
      boolean isBadVersion(int version); */

public class Solution extends VersionControl {
    public int firstBadVersion(int n) {
        // 思路:
        // 二分
        return mySol(1, n);
    }

    private int mySol(int left, int right) {
        // 递归终止条件
        if(left >= right) {
            return left;
        }
        if(isBadVersion(left)) {
            return left;
        }
        int mid = left + ((right - left) >> 1);
        if(isBadVersion(mid)) {
            return mySol(left, mid);
        } else {
            return mySol(mid + 1, right);
        }
    }
}

输出

img_8.png

上次编辑于: 2022/10/10 下午8:43:48
贡献者: liuxianzhishou