list=[0,0,0,0,1,1,1…]
二分查找+递归
# The isBadVersion API is already defined for you.
# @param version, an integer
# @return an integer
# def isBadVersion(version):
class Solution:
def firstBadVersion(self, n):
"""
:type n: int
:rtype: int
"""
if n== 1:
return 1
return self.firstBadVersionHelper(1,n)
def firstBadVersionHelper(self,start,end):
if end == start:
return start
mid =(start+end) >>1
a = isBadVersion(mid)
#区间判断
if a:
idx = self.firstBadVersionHelper(start=start,end=mid)#左区间,包括中点
else:
idx = self.firstBadVersionHelper(start=mid+1,end=end)#右区间,不包括中点
return idx
效率还可以



