ですから、基本的に私は信じられないほど馬鹿げていると感じています。この演習のおかげで、コーディングに4〜5時間費やしましたが、これまでのところ成功していません。
これは、最長パスアプローチを使用したツリートラバーサルで解決する方が簡単であることに気付きましたが、よくわかりません(これを確認してください) 。簡単な問題の1つです。では、これを解決するためのガイダンス、基本的な手順、またはアルゴリズムのアプローチについて教えてください。あらゆる種類の助けが確かにありがたいです。
PS。私は通常、これまでに行ったことに関するコードを投稿しますが、これまでのところすべてが間違っているため、少なくともアイデアの観点からはゼロから始めることを好みます。
ありがとう。
リクエストごとに、演習を解決するために受け入れられた回答に従って入力したコードは次のとおりです。
def get_max_sum(matrix)
(1...matrix.length).each do |index|
flag = 0
matrix[index].each_with_index do |e, i|
add = (matrix[index-1][flag] > matrix[index-1][flag+1]) ? matrix[index-1][flag] : matrix[index-1][flag+1]
e += add
matrix[index][i] = e
flag = flag + 1
end
end
matrix[-1][0]
end
ここで、matrix paramは配列の配列であり、各配列は三角形の行を表します。