结果不是4,但数组中的最大值。
它是这样的:
values
是元件阵列。
start
是当前的索引。
value
是当前最大值。
如果当前索引超过了数组的长度,则返回当前最大值。这是第一行代码和停止条件。
否则,返回当前最大值和最大值之间的数组超过当前索引。这将递归地最终返回数组中的最大值。
您最初通过start = 0
和value = 0
调用此函数。
假设values = [2,5,1]
。
mystery ([2,5,1], 0 , 0) ->
start (0) != values.length (3) ->
return max (0, mystery([2,5,1], 1, 2) ->
mystery ([2,5,1], 1, 2) ->
start (1) != values.length ->
return max (2, mystery([2,5,1], 2, 5) ->
mystery ([2,5,1], 2, 5) ->
start(2) != values.length ->
return max(5, mystery([2,5,1], 3, 2) ->
start(3) == values.length ->
return value (1)
-> return max(5,1)
-> return 5
-> return max(2,5)
-> return 5
-> return max(0,5)
-> return 5
什么投入应该给结果'4'? – 2012-02-21 21:40:49
你还应该包括输入参数的值(分别是'values','start'和'value',否则很难解释发生了什么。虽然我猜测'value'和'start'都是0 – biziclop 2012-02-21 21:41:36