ダイナミックプログラミングを学びたい人のために、扱いやすく理解できる例を探しています。動的プログラミングとは何かについて、ここで良い答えがあります。フィボナッチ数列は良い例ですが、表面を傷つけるには小さすぎます。アルゴリズムのクラスはまだ受講していませんが、春に向けて私のリストに載っていれば幸いです。
ダイナミックプログラミングを学びたい人のために、扱いやすく理解できる例を探しています。動的プログラミングとは何かについて、ここで良い答えがあります。フィボナッチ数列は良い例ですが、表面を傷つけるには小さすぎます。アルゴリズムのクラスはまだ受講していませんが、春に向けて私のリストに載っていれば幸いです。
回答:
このサイトをチェックしてください:動的プログラミングの練習問題
これは、 29の解決されたDP問題と優れた説明からなる優れたチュートリアルです。
動的プログラミングの背後にある考え方は、副問題の解決策をキャッシュ(メモ)しているということですが、それ以上のものがあると思います。
多くのGoogle Code Jamの問題があるため、ソリューションには効率的な動的プログラミングが必要です。例:
Code Jamの各練習コンテストには、問題を解決しようとして困惑している人のための「コンテスト分析」セクションがあることに注意してください。
レーベンシュタイン距離の計算は、動的プログラミングで解決した最初の問題の1つでした。複雑さの点では、フィボナッチシーケンスの次のステップとしてはまともです。