C++ | Leetcode C++题解之第278题第一个错误的版本

题目:

题解:

class Solution {
public:
    int firstBadVersion(int n) {
        int left = 1, 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;
    }
};

相关推荐

  1. 力扣-278. 第一错误版本

    2024-07-23 07:44:03       56 阅读
  2. 第一错误版本

    2024-07-23 07:44:03       45 阅读
  3. 11-二分-索引二分-第一错误版本

    2024-07-23 07:44:03       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-23 07:44:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-23 07:44:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-23 07:44:03       45 阅读
  4. Python语言-面向对象

    2024-07-23 07:44:03       55 阅读

热门阅读

  1. Oracle(18)什么是序列(Sequence)?

    2024-07-23 07:44:03       16 阅读
  2. 【git】github中的Pull Request是什么

    2024-07-23 07:44:03       15 阅读
  3. AI学习指南机器学习篇-SOM的进化与改进

    2024-07-23 07:44:03       17 阅读
  4. 驱动开发系列07 - 驱动程序如何分配内存

    2024-07-23 07:44:03       17 阅读