java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 |
---|
文章目录
- 二分查找
二分查找
解题思路:时间复杂度O( l o g 2 n log_2n log2n),空间复杂度O( 1 1 1) |
---|
- 使用二分查找
- 如果当前mid版本是错误版本,就向左继续找
- 如果是正确版本,就向右找
代码 |
---|
/* The isBadVersion API is defined in the parent class VersionControl.
boolean isBadVersion(int version); */
public class Solution extends VersionControl {
public int firstBadVersion(int n) {
int left = 1;int right = n;//二分查找
while(left<right){
int mid = left+(right - left)/2;
if(isBadVersion(mid)) right = mid;//如果当前mid是错误版本,就向左找
else left = mid+1;//如果当前mid是正确版本,就向右找
}
return left;//返回left,就是最早的错误版本
}
}