top of page

Dynamic Programming

18 problems · Easy to Hard · Dynamic programming patterns

Dynamic programming is a technique for solving problems by breaking them into overlapping subproblems and caching intermediate results to avoid redundant computation. This track builds from simple 1D DP problems like Climbing Stairs and Coin Change through 2D grid problems, string matching with LCS and Edit Distance, and culminates in Hard problems including Burst Balloons, Wildcard Matching, and Russian Doll Envelopes.

Why it matters:

DP is consistently cited as the most feared topic in technical interviews — and the most rewarding to master. Interviewers use it because it requires three distinct skills at once: recognizing the overlapping subproblem structure, defining the state correctly, and writing clean transitions. Candidates who solve DP problems confidently signal a level of algorithmic maturity that few others demonstrate.

01

Dynamic Programming: A Refresher

02

Climbing Stairs

03

Fibonacci Number

04

House Robber

05

Coin Change

06

Target Sum

07

Unique Paths

08

Decode Ways

09

Longest Common Subsequence

10

Minimum Path Sum

11

Regular Expression Matching

12

Unique Paths II

13

Word Break

14

Longest Increasing Subsequence

15

Wildcard Matching

16

Edit Distance

17

Burst Balloons

18

Russian Doll Envelopes

Drop Me a Line, Let Me Know What You Think

Thanks for submitting!

© 2026 by WhiteboardReady

bottom of page