278第一个错误版本

📃 题目描述

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

image-20220125231448820

🔔 解题思路

找个第一个为true的版本,采用二分板子,搜索左边界,找出第一个为true的index

    int firstBadVersion(int n) {
        int left = 0, right = n;
        int mid;

        while (left < right) {
            mid = left + ((right - left) >> 1);
            if (isBadVersion(mid) == false) left = mid + 1;//缩小左边界
            else right = mid;  //缩进右边界
        }

        return left;
    }

💥 复杂度分析

  • 空间复杂度:o(logn)
  • 时间复杂度:0(1)
posted @ 2022-05-07 11:54  D-booker  阅读(21)  评论(0)    收藏  举报