[E二分] lc278. 第一个错误的版本(二分+水题)

Posted Ypuyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[E二分] lc278. 第一个错误的版本(二分+水题)相关的知识,希望对你有一定的参考价值。

1. 题目来源

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

2. 题目解析

dp 呢,背包呢?怎么是个有手就行的二分!!!

注意计算 mid=l+r>>1,本题没给数据返回,直接爆 int 了…


时间复杂度: O ( l o g n ) O(logn) O(logn)

空间复杂度: O ( 1 ) O(1) O(1)


// The API isBadVersion is defined for you.
// bool isBadVersion(int version);

class Solution {
public:
    int firstBadVersion(int n) {
        int l = 1, r = n;
        while (l < r) {
            int mid = 0ll + l + r >> 1;
            if (isBadVersion(mid)) r = mid;
            else l = mid + 1;
        }
        return l;
    }
};

以上是关于[E二分] lc278. 第一个错误的版本(二分+水题)的主要内容,如果未能解决你的问题,请参考以下文章

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

LeetCode 278 第一个错误的版本[二分法] HERODING的LeetCode之路

LeetCode 278 第一个错误的版本[二分法] HERODING的LeetCode之路

文巾解题 278. 第一个错误的版本

LeetCode 278 First Bad Version(第一个坏版本)(二分法)(*)

LeetCode刷题278-简单-第一个错误版本