【手繪漫畫】圖解LeetCode之第一個錯誤的版本(LeetCode 278題)

在這裏插入圖片描述

圖解LeetCode刷題計劃

1、寫在前面

手繪漫畫系列正式上線!!!“圖解LeetCode刷題計劃” 來了!!!

今天是第九期,爭取每天一期,最多兩天一期,歡迎大家監督我。。。
在這裏插入圖片描述
最近依舊是二分查找算法呢~

使用新版的模板加上圖解,相信你能更加理解二分法的使用!!!
在這裏插入圖片描述

2、題目

首先看一下題目,
在這裏插入圖片描述
分界條件就是出現錯誤!!!調用 API 就可以實現這個功能,簡直是白給。
在這裏插入圖片描述
在這裏插入圖片描述

3、正文

首先分析一下情況,isBadVersion(mid)==true 那麼說明 mid 出現錯誤,但是它不一定是第一個,不過目標一定在左側。
在這裏插入圖片描述
確定一下 leftright,然後編寫二分查找模板。

可以看到,因爲有等號,所以 mid 有可能是第一個錯誤的地方,所以 right=mid,而另一半情況,因爲不帶等號,所以 left=mid+1
在這裏插入圖片描述

4、代碼

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

int firstBadVersion(int n) {
    int left = 0, right = n;
    while(left < right){
        int mid = left + (right - left) / 2;
        if(isBadVersion(mid)) { right = mid; }
        else { left = mid + 1; }
    }
    return left;
}

在這裏插入圖片描述
在這裏插入圖片描述

如果有幸幫到你,請幫我點個【贊】,給個【關注】!如果能順帶【評論】給個鼓勵,我將不勝感激。

如果想要更多的資源,歡迎關注 @我是管小亮,文字強迫症MAX~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章