Algorytmy i struktury danych - Programowanie dynamiczne
1. Programowanie dynamiczne to technika projektowania algorytmów stosowana do zagadnień związanych z zagadnieniami optymalizacyjnymi. Polega na rozwiązywaniu podproblemów i zapamiętywaniu ich wyników. W metodzie "dziel i zwycięzaj" wielokrotnie rozwiązuje się ten sam problem, natomiast w programowaniu dynamicznym rozwiązuje się każdy podproblem tylko raz zapamiętując wynik.
2. Podejście wstępujące to takie, w którym najpierw rozwiązuje się mniejsze podproblemy, a potem te większe.
3. Podejście zstępujące z zapamiętywaniem polega na rekurencyjnym wywoływaniu funkcji z zapamiętywaniem wyników. Jeżeli rozwiązanie danego problemu jest już w tabeli z wynikami, to należy je stamtąd odczytać.