其他分享
首页 > 其他分享> > 278. 第一个错误的版本(简单,二分查找)

278. 第一个错误的版本(简单,二分查找)

作者:互联网

题目链接:278. 第一个错误的版本

在这里插入图片描述

思路:二分查找

class Solution {
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; // 答案在区间 [left, mid] 中
            }
            else {
                left = mid + 1; // 答案在区间 [mid+1, right] 中
            }
        }
        // 此时有 left == right,区间缩为一个点,即为答案
        return left;
    }
};

标签:二分,right,int,mid,区间,查找,278,left
来源: https://blog.csdn.net/qq_39236499/article/details/121106593