// Forward declaration of isBadVersion API.bool isBadVersion(int version);
class Solution {
public:
intfirstBadVersion(int n) {
if (n == 1)
return 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 isBadVersion(left) ? left : left + 1;
}
};
python
# The isBadVersion API is already defined for you.# @param version, an integer# @return a bool# def isBadVersion(version):classSolution(object):deffirstBadVersion(self, n):"""
:type n: int
:rtype: int
"""if n==1:
return n;
left,right =1,n
while left<right:
mid = left + (right-left) // 2if isBadVersion(mid):
right = mid-1else:
left = mid+1return left if isBadVersion(left) else left+1