leetcode 第一个错误的版本
2019-01-18 18:27
155 查看
你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。
假设你有
n个版本
[1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。
你可以通过调用
bool isBadVersion(version)接口来判断版本号
version是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。
示例:
给定 n = 5,并且 version = 4 是第一个错误的版本。 [code]调用 isBadVersion(3) -> false 调用 isBadVersion(5) -> true 调用 isBadVersion(4) -> true 所以,4 是第一个错误的版本。
解题思路:
这个问题,一开始踩坑了,我知道利用的是二分法,但是二分查找某个数据,实际上是明确知道目标数据的,所以可以直接对比判断。但是这个是要和前后进行对比的。需要稍微改一下。
[code]/* The isBadVersion API is defined in the parent class VersionControl. boolean isBadVersion(int version); */ public class Solution extends VersionControl { public int firstBadVersion(int n) { if(n==1){ return 1; } int min = 1,max = n,mid = 0; while (min<=max){ mid = min + (max - min) / 2; if(isBadVersion(mid)){ max=mid -1; }else{ min=mid+1; } } return min; } }
相关文章推荐
- LeetCode 278. 第一个错误的版本 Python
- [leetcode]第一个错误的版本[javascript]
- LeetCode 278 First Bad Version(第一个坏版本)(二分法)(*)
- LintCode 第一个错误的代码版本
- 第一个错误的代码版本
- openWRT自学---自己编译的第一个 backfire10.03 版本的过程记录 --- 实际是由于下载了错误的backfire源码包导致的
- 第一个错误的代码版本
- [Lintcode]First Bad Version 第一个错误的代码版本
- 74 - 第一个错误的代码版本
- [LintCode] 第一个错误的代码版本
- LintCode : 第一个错误的代码版本
- java 第一个错误的版本
- [LeetCode] First Bad Version 第一个坏版本
- lintcode-74-第一个错误的代码版本
- 第一个错误的代码版本
- leetcode 278. First Bad Version-第一个坏版本|二分查找
- 第一个错误的代码版本
- leetcode_278. First Bad Version 寻找第一个坏的版本,二分查找法
- [LeetCode] 278. First Bad Version 第一个坏版本
- lintcode 74. 第一个错误的代码版本