标签:二分法 leetcode 九章算法 lintcode 面试题
http://www.jiuzhang.com/problem/53/
在早期的svn代码控制器中,代码版本的编号是从1开始累加的。有一天你提交了一个带BUG的代码到代码库中,使得这个版本上的单元测试(Unit Tests)失败了。而正不巧由于为此代码库贡献代码的每个人的工作都比较独立,你又休假去了,于是没有人去修复这个bug,这导致了从某个版本开始,后面的每个版本的单元测试都无法通过。假如说现在的代码版本号已经到了n。请找出第一个出错的代码版本(也就是你提交的那个有BUG的版本)。
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
标签:二分法 leetcode 九章算法 lintcode 面试题
原文地址:http://blog.csdn.net/jiuzhang_ninechapter/article/details/45680681