无法理解递归事例的一部分

  • 本文关键字:一部分 递归 python-3.x
  • 更新时间 :
  • 英文 :


已尝试:

def maxed(array):
if len(array) == 2:
return array[0] if array[0] > array[1] else array[1]
submax = maxed(array[1:])
return array[0] if array[0] > submax else submax

结果:如预期,即从列表中返回最大值。

问题:无法理解递归情况,如果len(数组)!=2.这里的代码是怎么工作的?

如果是len(array) != 2,则递归开始。maxed(array[1:])向下传递一个比当前帧短一个元素的列表,因此数组将收缩,直到最终达到len(array) == 2的基本情况。

但是,请注意,这个实现有一个重要的错误:它不能处理array以0或1元素开头的情况。

最新更新