我正在尝试二进制搜索的版本,但是无法将值返回给调用者函数。
问题已发布到leetcode(https://leetcode.com/problems/first-bad-version/)
问:您是产品经理,目前正在领导一个团队开发新产品。不幸的是,您产品的最新版本未通过质量检查。由于每个版本都是基于先前版本开发的,因此错误版本之后的所有版本也都不好。
假设您有n个版本[1、2,...,n],并且您想找出第一个不良版本,这将导致随后的所有不良版本。
您将获得一个API bool isBadVersion(version),它将返回版本是否错误。实现一个功能以查找第一个错误的版本。您应尽量减少对API的调用。
我尝试了一个简单的递归解决方案,但该值未返回。
def badVersion(self,start,end):
if start <= end:
if start == end:
return start
middle = (start + end)// 2
if isBadVersion(middle):
self.badVersion(start,middle)
else:
self.badVersion(middle+1,end)
它应该返回正确的值,但无法获得它。