[leetcode]First Bad Version
2015-09-11 17:45
260 查看
二分搜索,求满足条件最小的位置。
循环判断条件:l <= h 判断所有的可能点,如果选择l<h的话,中间的那个点m就没有判断。
返回值:如果l=h=m=2,如果2不满足条件,那么l=m+1,即l=3;如果2满足条件,那么l=2,h=m-1,即h=1。综上,应该返回l。
代码:
循环判断条件:l <= h 判断所有的可能点,如果选择l<h的话,中间的那个点m就没有判断。
返回值:如果l=h=m=2,如果2不满足条件,那么l=m+1,即l=3;如果2满足条件,那么l=2,h=m-1,即h=1。综上,应该返回l。
代码:
# The isBadVersion API is already defined for you. # @param version, an integer # @return a bool # def isBadVersion(version): class Solution(object): def firstBadVersion(self, n): """ :type n: int :rtype: int """ l = 1 h = n m = (l+h)>>1 while(l <= h): m = (l+h)>>1 if(isBadVersion(m)): h = m - 1 else: l = m + 1 return l
相关文章推荐
- Android Studio教程04-导入Eclipse项目到AndroidStudio(包括导入第三方Project项目(不是jar包形式))
- 算法锻炼--多项式除
- Assetbundle1
- PLM数据库迁移注意事项
- 参数化
- Android studio 无法启动解决方案
- Jackson 框架,轻易转换JSON
- Eclipse调试时Application XXX is waiting for the debugger to attach的提示
- MFC 利用Spin控件增减编辑框控件数值
- 朱刘算法
- Hibernate操作流程
- 使用jbox弹窗,关闭子窗体并刷新父窗体
- Service学习(本地服务的两种启动方式以及跨进程服务)
- [caffe]深度学习之图像分类模型AlexNet解读
- IO系统性能之二:缓存和RAID如何提高IO
- linux 下vi进行文件编辑的常用命令1
- 数字计算的有序排列的号码出现二分法
- Web应用与Web应用防火墙之网络安全产品追述
- 思念,在天涯
- 在线编程刷题碰到的一些问题