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就停止了?
递归调用先调用的后返回,第一次调用DFS(),不满足if条件,所以不会返回True,而不指定返回值,函数默认return None。所以递归结束,就会返回第一次调用的结果None。
这个问题我也遇到过:
https://blog.csdn.net/qq_39234705/article/details/82808505