题意:在一个一维Version[1,2,...,n]中,BadVersion i 将会导致Version[i,i+1,...n]都为BadVersion,找出第一个BadVersion.
分析:简单的二分查找,注意数组下表可能溢出。
代码:
// Forward declaration of isBadVersion API.
bool isBadVersion(int version);
class Solution {
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-1;
else left=mid+1;
}
return left;
}
};