第一个错误的版本
力扣 278. 第一个错误的版本
题目说明
你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。
假设你有
n个版本[1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用
bool isBadVersion(version)接口来判断版本号version是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。
示例
1 | 给定 n = 5,并且 version = 4 是第一个错误的版本。 |
笔者理解
此题是一道二分查找算法问题,在力扣题库中被定义为简单题。
解法
当笔者阅读完此题后,发现此题是比较经典的二分查找,让我们来看看具体如何实现的吧。
实现
1 | /* The isBadVersion API is defined in the parent class VersionControl. |
时间效率和空间效率都还行,可见此解法还比较适合此题;
总结
本题是今天的每日一题,难度是为简单,感兴趣的朋友都可以去尝试一下,此题还有其他更多的解法,朋友们可以自己逐一尝试。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 徐年の博客!







