始める前に、いいえ、これはメモ化と動的プログラミングの違いやどちらが優れているかを尋ねる質問ではなく、キャッシュされたルックアップを処理する方法の小さな違いについて尋ねる単純な質問です。
DP はボトムアップのアプローチを使用しますが、メモ化はトップダウンのアプローチを使用します。したがって、DP では、キャッシュされた計算のテーブルを構築することから始め、キャッシュされた値をより大きな計算に供給して、冗長な再帰的または反復的な関数呼び出しを回避します。メモ化は多かれ少なかれ、各関数呼び出しの結果をハッシュまたは配列 (おそらく配列) にキャッシュし、関数呼び出し内で結果を提供するだけです (関数の本体内で発生するものはすべてスキップします)。
私の質問は、私がここで述べていることは正しいですか? 両方のアプローチは類似しているように見えますが、メモ化に比べて DP の方が難しく、メモリを使用する方がわずかに効率的です。メモ化を使用すると、プログラムはキャッシュされていても各関数呼び出しを起動する必要があり、これらの関数呼び出しのすべてがスタックにすばやくフィードアップできますが、DP では関数内の配列テーブルをチェックし、再帰呼び出しのみを行います。 / 見つからない場合は反復関数。
私はここで正しいですか?または、何か不足していますか?