დინამიური პროგრამირება (DP) ხსნის პრობლემებს გადაფარვადი ქვე-პრობლემებით და ოპტიმალური ქვე-სტრუქტურით ყოველი ქვე-პრობლემის ერთხელ გამოთვლით და შედეგის ხელმეორედ გამოყენებით. ორი სტილი არის memoization (ზემოდან-ქვემოთ) და tabulation (ქვემოდან-ზემოთ).
იდეა
შინამი რეკურსია იმეორებს ერთსა და იმავე ქვე-პრობლემებს ექსპონენციალურად. DP ამ მნიშვნელობებს ხსნის ფიქსაციაში, ექსპონენციალური მუშაობის პოლინომიულზე ჩამობრლის შედეგად.
