Dynamic programming coding challenges

Practise dynamic programming with 12 coding challenges, from easy to hard. Every challenge runs in your browser with instant tests, an AI review of your code and community solutions to compare.

Medium · 5 Hard · 7

Skills you'll practise: Bitmask DPOptimization2D DP tables2D dynamic programmingBinomial coefficientsCounting combinationsCounting rangesDP with binary searchDigit DPGreedy choiceGrid path countingInterval DP
  • Python · C++ · C#
  • Automated tests
  • AI code review
  • Community solutions
226
Challenges
2
Solutions shared
3
Languages

All challenges

Search by topic, language, or difficulty.

12 challenges
Hard

Shortest Delivery Tour

Visit every city once and return home as cheaply as possible.

You'll learn Bitmask DPTraveling salesman
AdvancedBitmasksCompetitive-programmingDynamic-programming
No solutions yet
Hard

Word Break

Decide whether text can be split into dictionary words.

You'll learn Prefix DPString segmentation
AdvancedDynamic-programmingHackathonStrings
No solutions yet
Hard

Matrix Chain Multiplication

Find the cheapest order to multiply a chain of matrices.

You'll learn Interval DPOptimization
AdvancedCompetitive-programmingDynamic-programming
No solutions yet
Medium

Count Grid Paths

Count routes across a rectangular grid using only right and down moves.

You'll learn Grid path countingBinomial coefficients
CombinatoricsDynamic-programming
No solutions yet
Hard

Count Numbers With Distinct Neighbors

Count range values whose adjacent decimal digits are never equal.

You'll learn Digit DPCounting ranges
Dynamic-programmingNumbers
No solutions yet
Hard

Maximum Project Rewards

Choose nonoverlapping projects to earn the largest total reward.

You'll learn Weighted schedulingDP with binary search
Dynamic-programmingScheduling
No solutions yet
Medium

Subtract Digits to Reach Zero

Use as few digit subtractions as possible to reach zero.

You'll learn Minimum steps DPGreedy choice
Dynamic-programmingNumbers
No solutions yet
Hard

Cut a Rectangle Into Squares

Find the fewest straight cuts needed to produce only squares.

You'll learn 2D dynamic programmingOptimization
Dynamic-programmingGeometry
No solutions yet
Hard

Minimum Elevator Rides

Group people into as few weight-limited elevator rides as possible.

You'll learn Bitmask DPSubsets
Dynamic-programmingOptimization
No solutions yet
Medium

Count Coin Combinations

Count ways to make an amount with unlimited coins of specified denominations.

You'll learn Unbounded knapsackCounting combinations
CombinatoricsDynamic-programming
No solutions yet
Medium

Count Dice Sequences

Count ordered die-roll sequences with a given total.

You'll learn RecurrencesModular counting
CombinatoricsDynamic-programming
No solutions yet
Medium

Longest Common Subsequence Length

A subsequence is formed by deleting zero or more elements while preserving the order of the remaining elements.

You'll learn 2D DP tablesMemory optimization
Dynamic-programmingSequences
No solutions yet