01 - Dynamic Programming - Introduction

Dynamic Programming is mainly an optimization over plain recursion. Wherever we see a recursive solution that has repeated calls for same inputs, we can optimize it using Dynamic Programming. The idea is to simply store the results of subproblems, so that we do not have to re-compute them when needed later. This simple optimization reduces time complexities from exponential to polynomial. Through this series of tutorials, we will solve most popular dynamic programming problems using the most intuitive way possible. Github:
Back to Top