题目描述
题解 还是典型二分
需要注意的是 题目中的bool isBadVersion(version)返回的true和false不代表当前版本version是否正确 恰好相反 返回true表示当前版本错误 返回false表示当前版本正确。
因此 第一个错误版本i应该满足
1 isBadVersion(i) true
2 isBadVersion(i-1) false
isBadVersion(i) true且isBadVersion(i-1) true 说明i为错误版本但不是第一个错误版本。
isBadVersion(i) false说明当前版本正确 错误的版本在之后。
class Solution(object): def firstBadVersion(self, n): if n 1: return 1 left 1 right n while left right: mid left (right-left)//2 if isBadVersion(mid) False: left mid 1 else: if isBadVersion(mid-1) True: right mid-1 else: return mid return left



