> For the complete documentation index, see [llms.txt](https://interviews.woojiahao.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://interviews.woojiahao.com/algorithms/dynamic-programming.md).

# 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

1. Minimizing/maximizing:&#x20;
2. Number of ways:
3.

## Steps to solving DP

1. Identify states
2. Identify state transitions
3. Implement top-down
4. Convert to bottom-up

## Types of DP

1. Linear sequence
2. Grid
3. Two sequences

## Common recurrence relations

## Recursive to iterative

## Optimizing space
