无法从函数中递归返回值

时间:2019-09-08 17:57:08

标签: python recursion tail-recursion

我正在尝试二进制搜索的版本,但是无法将值返回给调用者函数。

问题已发布到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)

它应该返回正确的值,但无法获得它。

0 个答案:

没有答案