zoukankan      html  css  js  c++  java
  • 【手绘漫画】图解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~

  • 相关阅读:
    《大道至简》读后笔记_3
    学习进度表_十周
    《大道至简》读后笔记_2
    《大道至简》读后笔记_1
    《梦断代码》读后笔记_3
    《梦断代码》读后笔记_2
    学习进度表_九周
    《梦断代码》读后笔记_1
    小组评价
    团队效绩计划
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302575.html
Copyright © 2011-2022 走看看