题目地址
https://leetcode.com/problems/first-bad-version/
题目大意
有从1到n,n个版本的产品,现在产品出现了问题。规定,如果第k个版本的产品出现问题,则k以后的版本都有问题。使用最少的时间找出第一个出问题的产品版本
解题思路
这个需要尽量小的时间复杂度,想到了二分查找
解题代码
// Forward declaration of isBadVersion API.
bool isBadVersion(int version);
class Solution {
public:
int firstBadVersion(int n) {
return badVersion(1, n);
}
int badVersion(int start, int end) {
if (start == end) {
return start;
}
int mid = start + (end - start) / 2;
if (isBadVersion(mid)) {
return badVersion(start, mid);
} else {
return badVersion(mid + 1, end);
}
}
};