Leetcode: 278. First Bad Version

思路

呼叫API的次数越少越好,因为不确定错误会是在前面一点的版本出现,还是後面一点的版本出现,因此最好从中间的版本切入,如果该版本回传结果为有错误的版本,则继续往前追溯;反之若回传为正确版本,则继续往後追溯,直到寻找的版本号边界交错。

是Binary search的应用题。

 
 
 

程序

class Solution {
public:
    int firstBadVersion(int n) {
        int bversion = -1;
        int lb = 0, ub = n;
        while( ub >= lb ) {
            int index = lb + (ub - lb) / 2;
            if ( isBadVersion(index) ) {
                ub = index - 1;
                bversion = index;
            }
            else
                lb = index + 1;
        }
        return bversion;
    }
};

 
 

打铁趁热的话

了解题目到写完程序,我花了10分钟,还是可以再更快一点> 口 <。


<<:  30天程序语言研究

>>:  Leetcode (Algorithm I): 5. Search Insert Position

CSS基础介绍(2)

来轻松聊聊 今天的内容将着重在版面配置,利用这些属性,可以让一个网页,从完全空白到能清楚的区分网页中...

Day09 SwiftUI 02 - 在 SwiftUI 上设计画面

预设已经帮我们建立一个 Text 元件"Hello world",且会看到Aut...

Debian10安装iRedMail v1.2.1详细教程

iRedMail简介 iRedMail是基于开源的postfix、dovecot、openldap...

Day 10 : Postgres 操作

昨天介绍资料库的概念,今天会开始操作 Postgres 资料库。GOGO! 以下示范均是直接对 po...

Day 23. Hashicorp Vault: KeePass into Vault

Hashicorp Vault: KeePass into Vault 今天介绍一个小工具,当你要把...