## Introduction to Dynamic Programming

1. What is Dynamic Programming? Dynamic Programming is an algorithmic paradigm that solves a given complex problem by breaking it into sub-problems and stores the results of sub-problems to avoid computing the same results again. Dynamic programming is used where we have problems, which can