質問は :
2つの要素が隣接しないように要素を選択して、正の整数の配列で可能な最大の合計を見つけます。
このような答えがあります:しかし、この質問の最良の答えは何ですか
配列を「t」で表し、0からインデックスを付けましょう。fを関数とし、f(k)=問題の条件を持つ[0..k]サブ配列の最大合計になります。次に、動的計画法を使用します。
f(0) = t[0]
f(1) = max{ t[0], t[1] }
f(k) = max{ f(k-2) + t[k], f(k-1) } if k >= 2
If the array has n elements we need f(n-1).
前もって感謝します。