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分钟,还是可以再更快一点> 口 <。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章