lintcode :First bad version 第一个错误的代码版本
2016-01-13 21:39
585 查看
题目
你可以通过
样例
给出
调用
调用
调用
此时我们可以断定
注意
请阅读上述代码,对于不同的语言获取正确的调用 isBadVersion 的方法,比如java的调用方式是SVNRepo
挑战
调用 isBadVersion 的次数越少越好
解题
感觉顺序遍历,找到第一个出现true的就是答案了,但是超时了。只有二分查找了
Python Code
第一个错误的代码版本
代码库的版本号是从 1 到 n 的整数。某一天,有人提交了错误版本的代码,因此造成自身及之后版本的代码在单元测试中均出错。请找出第一个错误的版本号。你可以通过
isBadVersion的接口来判断版本号 version 是否在单元测试中出错,具体接口详情和调用方法请见代码的注释部分。
样例
给出
n=5
调用
isBadVersion(3),得到
false
调用
isBadVersion(5),得到
true
调用
isBadVersion(4),得到
true
此时我们可以断定
4是第一个错误的版本号
注意
请阅读上述代码,对于不同的语言获取正确的调用 isBadVersion 的方法,比如java的调用方式是SVNRepo
.isBadVersion
挑战
调用 isBadVersion 的次数越少越好
解题
感觉顺序遍历,找到第一个出现true的就是答案了,但是超时了。只有二分查找了
#class SVNRepo: # @classmethod # def isBadVersion(cls, id) # # Run unit tests to check whether verison `id` is a bad version # # return true if unit tests passed else false. # You can use SVNRepo.isBadVersion(10) to check whether version 10 is a # bad version. class Solution: """ @param n: An integers. @return: An integer which is the first bad version. """ def findFirstBadVersion(self, n): # write your code here if n<=0:return 0 if n==1:return 1 l = 1 r = n while l< r: m = (l + r)/2 if SVNRepo.isBadVersion(m): r = m else: l = m + 1 return r
Python Code
相关文章推荐
- RandomAccessFile类解析
- 【智能路由器】设备流量、网速统计及上下线提醒(基于netfilter编程)
- 【Java】java日历
- Java多线程——Thread 和 Runnable
- 每日进步一点点:用CanPlayType方法测试google、IE、火狐浏览器对video的兼容性
- Lua 表达式
- WebService学习总结(三)——使用JDK开发WebService
- Python 2.5.11 返回函数
- Java高级部分流重点总结下
- java程序中的@Override是什么意思?
- 【转】C++中map容器的说明和使用技巧
- PHP学习之数组
- Spring MVC——DispatcherServlet简单介绍
- Spring hello world实例
- Servlet - github
- eclipse mybatis Generator
- Eclipse使用
- Python---索引
- Java常见关键字
- python动态生成写文件变量