| java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.youkuaiyun.com/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,就是最早的错误版本
}
}
本文介绍了如何在Java中使用二分查找算法解决编程题目,如LeetCode中的挑战,时间复杂度为O(log2n),空间复杂度为O(1)。通过VersionControl类的isBadVersion方法,Solution类的firstBadVersion函数找到最早的错误版本。


882

被折叠的 条评论
为什么被折叠?



