这题一开始用的是正向的递归,结果显而易见的内存超了,都怪python没有尾递归优化,渣渣。只能改循环了。采用的是倒过来数,这次内存占用就不超了。代码如下:
if nums == []:
return False
if nums[0] >= len(nums) - 1:
return True
m = len(nums) - 1
for i in range(len(nums) - 1)[::-1]:
if nums[i] >= m - i:
m = i
if i == 0:
if nums[i] >= m:
return True
else:
return False