zoukankan      html  css  js  c++  java
  • First Bad Version

    依然二分,转向条件,容易出问题的地方。

    对于<=情况,截止区间是0;使用mid-1需要多进行一次查找通过left=mid+1修正区间;

    对于<情况,截止区间是1;使用right=mid可以直接得到正确区间。

    https://leetcode.com/problems/first-bad-version/

    // Forward declaration of isBadVersion API.
    bool isBadVersion(int version);
    
    class Solution {
    public:
        int firstBadVersion(int n) {
            int left = 1;
            int right = n;
            int mid ;
            while(left <= right) {
                mid = left + (right - left) / 2;
                if(isBadVersion(mid)) {
                    right = mid - 1;
                } else {
                    left = mid + 1;
                }
            }
            return left;
        }
    };
    // Forward declaration of isBadVersion API.
    bool isBadVersion(int version);
    
    class Solution {
    public:
        int firstBadVersion(int n) {
            int left = 1;
            int right = n;
            int mid ;
            while(left < right) {
                mid = left + (right - left) / 2;
                if(isBadVersion(mid)) {
                    right = mid;
                } else {
                    left = mid + 1;
                }
            }
            return left;
        }
    };
  • 相关阅读:
    JavaScript 的 Promise
    MacOS copy图标shell脚本
    ExtJS 修改load paging时的参数
    JSONP
    8种跨域解决方案
    Ext Store Proxy Ajax
    ExtJS 自定义组件
    MacOS Apache配置
    xshell 上传 下载文件
    shell 内网主机存活探测器
  • 原文地址:https://www.cnblogs.com/daijkstra/p/4809597.html
Copyright © 2011-2022 走看看