結果不是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