• 278.First Bad Version


    有一系列产品的版本,如果其中一个版本错了,则在它之后的都错了。调用API函数 isBadVersion( )找到错误开始的源头,要求尽量少的调用API。
    Given n = 5, and version = 4 is the first bad version.

    call isBadVersion(3) -> false
    call isBadVersion(5) -> true
    call isBadVersion(4) -> true

    Then 4 is the first bad version.

    思路:
    利用二分查找,当 mid是出错版本的时候,则错误源头在 mid及mid左边;当mid不是错误的版本,则错误源头在mid右边。提交OJ时,会出现很大的数,而此时( l + r)会出现越界报错,所以用 mid = l + ( r - l) / 2;

    class Solution {
    public:
        int firstBadVersion(int n) {
            int l = 1, r = n;
            while (l < r) {
                int mid = l + (r - l) / 2;
                if (isBadVersion(mid)) r = mid;
                else l = mid + 1;
            }
            return r;
        }
    };
  • 相关阅读:
    linux
    网络编址
    抽象类 接口
    mysql
    java
    [lyu]Mysql解压版安装教程
    Mysql出现拒绝本地账户访问的情况副本
    js
    Redis限流和GeoHash
    布隆过滤器
  • 原文地址:https://www.cnblogs.com/luo-c/p/12885862.html
Copyright © 2020-2023  润新知