LeetCode278——第一个错误的版本
我的LeetCode代码仓:https://github.com/617076674/LeetCode
原题链接:https://leetcode-cn.com/problems/first-bad-version/
题目描述:
知识点:二分查找法
思路一:顺序查找
时间复杂度是O(n)。空间复杂度是O(1)。
JAVA代码:
public class Solution extends VersionControl {
public int firstBadVersion(int n) {
for (int i = 1; i <= n; i++) {
if (isBadVersion(i)) {
return i;
}
}
return -1;
}
}
LeetCode解题报告:
思路二:二分查找法
时间复杂度是O(logn)。空间复杂度是O(1)。
JAVA代码:
class Solution extends VersionControl {
public int firstBadVersion(int n) {
int left = 1, right = n;
while (left <= right) {
int mid = left + (right - left) / 2;
if (isBadVersion(mid)) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return left;
}
}
LeetCode解题报告: