# Dynamic Programming

Dynamic Programming is an incredibly confusing topic when you first start, it is good to try recognizing commonly occurring patterns to reduce the amount of head scratching you do

## Recognizing DP problems

Minimizing/maximizing:

Number of ways:

## Steps to solving DP

Identify states

Identify state transitions

Implement top-down

Convert to bottom-up

## Types of DP

Linear sequence

Grid

Two sequences

## Common recurrence relations

## Recursive to iterative

## Optimizing space

Last updated