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):
                return DFS(nums[i:])
          #上面这两行代码如果改成 return DFS(nums[1:]、  DFS(nums[2:]......)则可以运行,但是引入for循环后,return就变为None)


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

想知道怎么解决?卡了我好久

在for循环里没有限制条件直接加return肯定有问题吧,每次运行到第一个就结束当前函数了,for循环里从第二个开始的都不会运行
你能说一下你想用这个函数干嘛么

你这个东西写的挺别扭的,外边调用的是canJump,然后运行canJump的时候,又调不到DFS,那怎么用你说的那段代码

当用for循环时,nums【0】是2,i取值1。2,。第二轮的nums为【0,0】,【0】,当nums为【0,0】时,for 循环中i=range(1,1),range函数从start开始不包括end。这里就没值