LeetCode-First Bad Version
2015-09-17 07:50
183 查看
二分查找 但是要看清楚left right每次fuzhi的时候是否要加一
left要加一 因为是找bad 那mid不是bad的时候 它就没用了 但是假如它是bad 也要考虑 所以right 不需要减一
!!!整数超界问题 用(left + right )/2 可能加法超界 left/2 + right/2 不会超。
public class Solution extends VersionControl {
public int firstBadVersion(int n) {
int left = 1;
int right = n;
while ( right > left ) {
int mid = left/2 + right /2 ;
if ( isBadVersion(mid) ){
right = mid;
}
else
left = mid + 1;
}
return right;
}
}
left要加一 因为是找bad 那mid不是bad的时候 它就没用了 但是假如它是bad 也要考虑 所以right 不需要减一
!!!整数超界问题 用(left + right )/2 可能加法超界 left/2 + right/2 不会超。
public class Solution extends VersionControl {
public int firstBadVersion(int n) {
int left = 1;
int right = n;
while ( right > left ) {
int mid = left/2 + right /2 ;
if ( isBadVersion(mid) ){
right = mid;
}
else
left = mid + 1;
}
return right;
}
}
相关文章推荐
- 数据结构之循环数组实现队列
- android端读取本地图片出现OutOfMemoryException
- C语言关于字符串逆序输出---面试
- bzoj-1133 Kon
- C# 01 Hello World
- gradle--第十一章 使用Gradle命令行
- Bug:Sqlite3插入时由于json不能识别传入的单引号字符串引起的问题
- php中::是什么意思?关于php中::的说明及应用
- [转]Android中的android:layout_width和android:width
- 阿里云yum升级python2.7 CentOS6 默认自带pyton2.6
- Python学习笔记1
- Debian 项目不再提供 CD 格式的 ISO 镜像
- 我为你痴狂
- input
- [Android]异步任务AsyncTask使用解析
- C++Primer 第五版 9.3.1节练习
- C++Primer第五版 9.3.6节练习
- C++Primer第五版 9.2.7节练习
- C++Primer 第五版 9.2节练习
- C++Primer第五版 9.2.5节练习