YouTube Tools

NeetCode Dynamic Programming Playlist: study plan and how long it takes

The NeetCode playlist is 49 videos and 19.1 hours long. Here's how long it takes at different paces, a week-by-week schedule built from the real videos, and a planner that turns it into your own daily plan.

49 videos · 19.1 hours · NeetCode

NeetCode's DP playlist gathers his dynamic programming solutions, from house robber and LIS to edit distance and split array largest sum, plus a video on the top DP patterns and a three-hour 2D DP full course.

The problems aren't ordered by difficulty, so it works best alongside a pattern-based course or as practice after one.

Who it's for: Interview candidates who already know DP basics and want lots of explained practice problems in Python.

How long does it take?

The full playlist is 19.1 hours across 49 videos. Here's roughly how many days that is at different daily watch times and speeds, counting video time only:

Days to finish the playlist by daily watch time and playback speed
Daily timeAt 1xAt 1.5xAt 2x
30 min a day39 days26 days20 days
1 h a day20 days13 days10 days
2 h a day10 days7 days5 days

Make your own schedule

The playlist link is already filled in. Press Plan, set how much time you have each day and your speed, and you'll get a day-by-day schedule with a finish date and a calendar file. It reads the live playlist, so new videos are included.

Week-by-week schedule

A sample plan at 1 hour a day and normal speed, using whole videos so none is split across days. That's 3 weeks in total. For a different pace, start date or speed, use the planner above.

Week 1Videos 1–21 · 5h 59m
  1. Day 1 · 50m

    • 1Target Sum - Dynamic Programming - Leetcode 494 - Python12m
    • 2Climbing Stairs - Dynamic Programming - Leetcode 70 - Python18m
    • 3Minimum Cost for Tickets - Dynamic Programming - Leetcode 983 - Python20m
  2. Day 2 · 52m

    • 4Coin Change 2 - Dynamic Programming Unbounded Knapsack - Leetcode 518 - Python23m
    • 5Top 5 Dynamic Programming Patterns for Coding Interviews - For Beginners29m
  3. Day 3 · 50m

    • 6Word Break - Dynamic Programming - Leetcode 139 - Python16m
    • 7Longest Palindromic Substring - Python - Leetcode 58m
    • 8Decode Ways - Dynamic Programming - Leetcode 91 - Python15m
    • 9House Robber - Leetcode 198 - Python Dynamic Programming11m
  4. Day 4 · 45m

    • 10Interleaving Strings - Dynamic Programming - Leetcode 97 - Python18m
    • 11House Robber II - Dynamic Programming - Leetcode 21311m
    • 12Paint House - Dynamic Programming - Leetcode 256 - Python16m
  5. Day 5 · 52m

    • 13Longest Increasing Subsequence - Dynamic Programming - Leetcode 30018m
    • 14Longest Common Subsequence - Dynamic Programming - Leetcode 114318m
    • 15Maximum Product Subarray - Dynamic Programming - Leetcode 15216m
  6. Day 6 · 54m

    • 16Coin Change - Dynamic Programming Bottom Up - Leetcode 32219m
    • 17Maximal Square - Top Down Memoization - Leetcode 22120m
    • 18Triangle - Dynamic Programming made Easy - Leetcode 12015m
  7. Day 7 · 56m

    • 19Unique Binary Search Trees - Leetcode 96 - Python Dynamic Programming11m
    • 20Regular Expression Matching - Dynamic Programming Top-Down Memoization - Leetcode 1028m
    • 21Jump Game - Greedy - Leetcode 5516m
Week 2Videos 22–45 · 6h 24m
  1. Day 8 · 59m

    • 22Jump Game II - Greedy - Leetcode 45 - Python12m
    • 23Unique Paths - Dynamic Programming - Leetcode 6211m
    • 24Perfect Squares - Dynamic Programming - Leetcode 279 - Python15m
    • 25Edit Distance - Dynamic Programming - Leetcode 72 - Python21m
  2. Day 9 · 59m

    • 26Distinct Subsequences - Dynamic Programming - Leetcode 115 - Python12m
    • 27Combination Sum IV - Dynamic Programming - Leetcode 377 - Python12m
    • 28Burst Baloons - Dynamic Programming - Leetcode 312 - Python21m
    • 29Number of Ways to Rearrange Sticks With K Sticks Visible - Dynamic Programming - Leetcode 186615m
  3. Day 10 · 55m

    • 30Maximum Alternating Subsequence Sum - Dynamic Programming - Leetcode 1911 - Python13m
    • 31Partition Equal Subset Sum - Dynamic Programming - Leetcode 416 - Python14m
    • 32Stickers to Spell Word - DP Memoization - Leetcode 691 - Python27m
  4. Day 11 · 48m

    • 33Counting Bits - Dynamic Programming - Leetcode 338 - Python13m
    • 34Minimum Number of Days to Eat N Oranges - Dynamic Programming - Leetcode 1553 - Python17m
    • 35Minimum Path Sum - Dynamic Programming - Leetcode 64 - Python9m
    • 36Pascal's Triangle - Leetcode 118 - Python9m
  5. Day 12 · 55m

    • 37All Possible Full Binary Trees - Memoization - Leetcode 894 - Python13m
    • 38Min Cost Climbing Stairs - Dynamic Programming - Leetcode 746 - Python19m
    • 39Stone Game - Leetcode 877 - Python22m
  6. Day 13 · 54m

    • 40Best Time to Buy and Sell Stock with Cooldown - Leetcode 309 - Python15m
    • 41Integer Break - Dynamic Programming - Leetcode 343 - Python17m
    • 42Number of Longest Increasing Subsequence - Dynamic Programming - Leetcode 673 - Python22m
  7. Day 14 · 54m

    • 43Delete and Earn - Dynamic Programming - Leetcode 740 - Python19m
    • 44Longest Increasing Path in a Matrix - Leetcode 32918m
    • 45Split Array Largest Sum - Leetcode 410 - Python17m
Week 3Videos 46–49 · 6h 43m
  1. Day 15 · 12m

    • 46Count Vowels Permutation - Dynamic Programming - Leetcode 1220 - Python12m
  2. Day 16 · 2h 59m

    • 47Dynamic Programming 1D - Full Course - Python2h 59m
  3. Day 17 · 3h 17m

    • 48Dynamic Programming 2D - Full Course - Python3h 17m
  4. Day 18 · 15m

    • 49Palindromic Substrings - Leetcode 647 - Python15m

Tips for finishing

  • Watch the 'Top 5 Dynamic Programming Patterns' video (video 5) first, then group the problems by pattern as you go.
  • Split the 2D DP full course (video 48) over several days.