我有一個電路板(多維數組)。您從左上角開始,可以向右或向下移動。基本情況是右下角。如何從遞歸函數返回數組
我做了一個功能,尋找板內所有可能的移動和它們的值。當到達基本情況時,移動和值將被存儲爲數組ARR_SUMNUM
。
ARR_SUMNUM = []
def arr_all_moves(ary,a=0,b=0,sum_num=0,directions="")
rows = ary.length
cols = ary[0].length
goal = rows-1 + cols-1
curr_num = ary[a][b]
sum_num += curr_num
if [a,b] == [rows-1,cols-1]
ARR_SUMNUM.push([sum_num, directions])
return
end
if a == rows -1
return arr_all_moves(ary,a,b+1,sum_num,directions+="right ")
elsif b == cols -1
return arr_all_moves(ary,a+1,b,sum_num,directions+="down ")
end
arr_all_moves(ary,a,b+1,sum_num,directions+="right ")
directions.chomp!("right ") ##### I realize this was the source of all my issues
arr_all_moves(ary,a+1,b,sum_num,directions+="down ")
return ARR_SUMNUM
end
board = [ [1,3,4],
[5,6,999],
[8,9,10],
[11,12,13],
[2000,42,13]
]
p arr_all_moves(board)
如何獲得此功能不恆定的工作就像ARR_SUMNUM
和使用局部變量來代替?我嘗試使用arr_sumnum
代替,但我得到一個空數組。
你應該使用''而不是''左'''而不是''左'「,因爲那是什麼問題需要 –