jeremie_SYSU 2018-10-20 19:30 采纳率: 0%
浏览 3082

python递归的无法返回或者达到某一条件终止并return

 class Solution:
    def canJump(self, nums):
        if len(nums) == 0:
            return False
        def DFS(nums):
            if len(nums) == 1:
                return True
            for i in range(1,nums[0]+1):
                DFS(nums[i:])

        if DFS(nums) is False:
            print('1111')
            return True
        elif DFS(nums) is None:
            print('2222')
            return False

S =Solution()
S.canJump([2,0,0])

两个问题:1为什么我DFS函数没有返回TRUE ,返回的是None 2如果按照网上的方法在
DFS(nums[i:]) 前加上return 为什么我的i不会循环到2这个值,只能是1就停止了?

  • 写回答

1条回答

  • 流泪熊猫头 2018-10-21 06:47
    关注

    递归调用先调用的后返回,第一次调用DFS(),不满足if条件,所以不会返回True,而不指定返回值,函数默认return None。所以递归结束,就会返回第一次调用的结果None。

    这个问题我也遇到过:
    https://blog.csdn.net/qq_39234705/article/details/82808505

    评论

报告相同问题?

悬赏问题

  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多