Leetcode.第一个错误的版本
二分法
由题意可知:前面的部分都是正确的版本,从第一个错误版本之后的全是错误版本。
如果isBadVersion(mid),返回的结果是True,说明找过头的,错误的版本在mid之前(包含mid),r=mid;
如果isBadVersion(mid),返回的结果是False,说明还没有找到,错误的版本在mid之后(不包含mid),l=mid+1
class Solution(object):
def firstBadVersion(self, n):
l=1;r=n
while l<r:
mid=(l+r)/2
if isBadVersion(mid):
r=mid
else:
l=mid+1
return l