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;
        }
    };
  • 相关阅读:
    3.3 React Hooks
    ES6高阶函数
    ES6扩展运算符
    4.0不用npm,cnpm。使用yarn包启动react项目
    4.3 webpack打包学习
    4.2 Node.js模块化教程
    4.1React模块化
    vue组件化开发
    js箭头函数
    weblogic_exploit
  • 原文地址:https://www.cnblogs.com/daijkstra/p/4809597.html
Copyright © 2011-2022 走看看