LintCode 74 第一个错误的代码版本
2017-05-06 19:19
183 查看
题目:findFirstBadVersion
要求:
代码库的版本号是从 1 到 n 的整数。某一天,有人提交了错误版本的代码,因此造成自身及之后版本的代码在单元测试中均出错。请找出第一个错误的版本号。你可以通过 isBadVersion 的接口来判断版本号 version 是否在单元测试中出错,具体接口详情和调用方法请见代码的注释部分。
样例:
给出 n=5调用isBadVersion(3),得到false
调用isBadVersion(5),得到true
调用isBadVersion(4),得到true
此时我们可以断定4是第一个错误的版本号
算法要求:
调用 isBadVersion 的次数越少越好解题思路:
直接上二分查找即可。算法如下:
int findFirstBadVersion(int n) { // write your code here if (n <= 0) { return 0; } long long left = 0; long long right = n - 1; long long mid = (left + right) / 2; while (left <= right) { bool flag2 = SVNRepo::isBadVersion(mid); if (flag2) { right = mid - 1; mid = (left + right) / 2; } else { left = mid + 1; mid = (left + right) / 2; } } return (int)left; }
相关文章推荐
- LintCode 74-第一个错误的代码版本
- lintcode-74-第一个错误的代码版本
- [LintCode] 第一个错误的代码版本
- LintCode-第一个错误的代码版本
- LintCode 第一个错误的代码版本
- 74 - 第一个错误的代码版本
- lintcode 74. 第一个错误的代码版本
- [Lintcode]First Bad Version 第一个错误的代码版本
- 第一个错误的代码版本
- LintCode : 第一个错误的代码版本
- 第一个错误的代码版本
- LintCode : 第一个错误的代码版本
- 第一个错误的代码版本
- Lintcode 第一个错误版本
- 第一个错误的代码版本
- 第一个错误的代码版本
- lintcode :First bad version 第一个错误的代码版本
- 用高版本vs编译旧VC代码时,如何处理无法从“const char [10]”转换为“LPCWSTR”的错误
- 错误:“Oracle不符合OUI版本要求,opatch应用失败,错误代码73”
- 吃午饭前,按书上的代码写会儿--Hunt the Wumpus第一个版本