九章算法面试题53 第一个出错的代码版本
2015-05-13 01:53
141 查看
九章算法官网-原文网址
http://www.jiuzhang.com/problem/53/题目
在早期的svn代码控制器中,代码版本的编号是从1开始累加的。有一天你提交了一个带BUG的代码到代码库中,使得这个版本上的单元测试(Unit Tests)失败了。而正不巧由于为此代码库贡献代码的每个人的工作都比较独立,你又休假去了,于是没有人去修复这个bug,这导致了从某个版本开始,后面的每个版本的单元测试都无法通过。假如说现在的代码版本号已经到了n。请找出第一个出错的代码版本(也就是你提交的那个有BUG的版本)。你可以调用一个函数isBadVersion(id)去测试版本号id是否是一个可以通过Unit Tests的好版本。你的算法应该尽量少的调用isBadVersion这个函数。
在线测试本题
http://lintcode.com/problem/first-bad-version/解答
采用简单的二分法可以解决。Python 代码:
start, end = 1, n
while start + 1 < end:
mid = (start + end) / 2
if isBadVersion(mid):
end = mid
else:
start = mid + 1
if isBadVersion(start):
return start
return end
相关文章推荐
- NFrog[NHibernate代码工具]发布第一个版本
- lintcode&九章算法——Google面试题 | 有效括号字符串 ? 待解决
- 经典面试题(二)附答案 算法+数据结构+代码 微软Microsoft、谷歌Google、百度、腾讯
- 微博短链接算法php版本实现代码
- 九章算法面试题82 合并有序链表
- 九章算法面试题23 栈上实现Min函数
- 九章算法面试题36 交错的字符串
- 九章算法面试题42 构造MaxTree
- lintcode :First bad version 第一个错误的代码版本
- [LintCode] 第一个错误的代码版本
- 经典面试题(三)附答案 算法+数据结构+代码 微软Microsoft、谷歌Google、百度、腾讯
- 经典面试题(四)附答案 算法+数据结构+代码 微软Microsoft、谷歌Google、百度、腾讯
- 刚创建的远程版本库,在push代码时出错
- 九章算法面试题1 落单的数
- 【算法】程序猿不写代码是不对的53
- 九章算法面试题13 随机数生成器
- 九章算法面试题24 Fizz Buzz
- 九章算法面试题37 主元素
- 九章算法面试题43 直方图内最大矩阵
- 九章算法面试题58 背包问题