【LeetCode(Java) - 278】第一个错误的版本

    科技2025-10-03  8

    文章目录

    1、题目描述2、解题思路3、解题代码

    1、题目描述

    2、解题思路

      经典的给定一个 API 来辅助二分查找的算法题,本题的关键在于:如果当前版本是正确的版本,那么第一个错误的版本肯定不是当前版本;如果当前版本是错误的版本,那么当前版本可能是第一个错误的版本。

      因此,设计二分查找解决时,如果是正确的版本,新的区间就不要包含当前版本;如果是错误的版本,新的区间就得包含当前的版本。

    3、解题代码

    /* 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 left = 1; int right = n; while (left < right) { int mid = left + (right - left) / 2; if (isBadVersion(mid)) { right = mid; } else { left = mid + 1; } } return left; } }
    Processed: 0.008, SQL: 8