278.第一个错误的版本
具体题目介绍在力扣第278道题。
class Solution {
public:
int firstBadVersion(int n) {
int start = 0;
while(isBadVersion(n / 2) && n > start)
{
if(!isBadVersion(n / 2))
{
break;
}
n = n / 2;
}
start = n / 2;
while(!isBadVersion(start) && start < n)
{
start++;
}
return start;
}
};
本来没什么思路,看到相关标签里有二分查找,细想确实可以使用二分查找方法来解决,思路是先不断从中间分开,找到没有出问题的版本的位置,然后逐步前移就能找出有问题的版本的位置。