Skip to content
Avio Lines
D18

Dynamic Programming

210 stations · 125h

From recursion + memo to bottom-up, across all DP patterns. 6 concept lectures and 204 interview problems explained by codestorywithMIK (125h of video), grouped into 10 patterns such as 1D, 2D Grid, Knapsack.

Start this line →
problems by zone (pattern)
  • 1D104
  • 2D Grid28
  • Knapsack14
  • LIS9
  • Subsequences/Strings (LCS, Edit Distance)33
  • Interval/MCM10
  • DP on Trees6
  • Bitmask4
  • Digit DP2
  • Stocks4

All 210 stations in order

  1. 1.Introduction
  2. 2.Lowest Common Ancestor
  3. 3.Roadmap for DP
  4. 4.Introduction
  5. 5.Introduction
  6. 6.Introduction
  7. 7.Kth Ancestor of a Tree Node (LeetCode 1483)
  8. 8.Number of Ways to Assign Edge Weights II (LeetCode 3559)
  9. 9.Path Existence Queries in a Graph II (LeetCode 3534)
  10. 10.Fibonacci Number (LeetCode 509)
  11. 11.Climbing Stairs (LeetCode 70)
  12. 12.House Robber (LeetCode 198)
  13. 13.House Robber II (LeetCode 213)
  14. 14.House Robber II (LeetCode 213)
  15. 15.House Robber I (LeetCode 198)
  16. 16.House Robber II (LeetCode 213)
  17. 17.Maximum Alternating Subsequence Sum (LeetCode 1911)
  18. 18.Maximum Alternating Subsequence Sum (LeetCode 1911)
  19. 19.Longest Increasing Subsequence (LeetCode 300)
  20. 20.Longest Increasing Subsequence (LeetCode 300)
  21. 21.Maximum Length of Pair Chain (LeetCode 646)
  22. 22.Longest String Chain (LeetCode 1048)
  23. 23.Build Array Where You Can Find The Maximum Exactly K Comparisons (LeetCode 1420)
  24. 24.Maximum Balanced Subsequence Sum (LeetCode 2926)
  25. 25.Longest Increasing Subsequence (LeetCode 300)
  26. 26.Largest Divisible Subset (LeetCode 368)
  27. 27.Print Longest Common Subsequence
  28. 28.Shortest Common Supersequence
  29. 29.Print Shortest Common Supersequence (LeetCode 1092)
  30. 30.Edit Distance (LeetCode 72)
  31. 31.Palindromic Substrings (LeetCode 647)
  32. 32.Longest Palindromic Substring (LeetCode 5)
  33. 33.Longest Palindromic Subsequence (LeetCode 516)
  34. 34.Minimum Insertion Steps to Make a String Palindrome (LeetCode 1312)
  35. 35.Palindrome Partitioning (LeetCode 131)
  36. 36.Palindrome Partitioning II (LeetCode 132)
  37. 37.Unique Paths (LeetCode 62)
  38. 38.Unique Paths II (LeetCode 63)
  39. 39.Maximum Non Negative Product in a Matrix (LeetCode 1594)
  40. 40.Dungeon Game (LeetCode 174)
  41. 41.Find the Maximum Number of Fruits Collected (LeetCode 3363)
  42. 42.Fractional Knapsack
  43. 43.0/1 Knapsack
  44. 44.0/1 Knapsack
  45. 45.0/1 Knapsack
  46. 46.Subset Sum Problem
  47. 47.Partition Equal Subset Sum (LeetCode 416)
  48. 48.Count Subsets with Sum
  49. 49.Partitions with Given Difference leetcode
  50. 50.Target Sum (LeetCode 494)
  51. 51.Minimum Difficulty of a Job Schedule (LeetCode 1335)
  52. 52.Maximum Length of a Concatenated String with Unique Characters (LeetCode 1239)
  53. 53.Ugly Number II (LeetCode 264)
  54. 54.Perfect Squares (LeetCode 279)
  55. 55.Maximum Profit in Job Scheduling (LeetCode 1235)
  56. 56.Arithmetic Slices II - Subsequence (LeetCode 446)
  57. 57.Climbing Stairs (LeetCode 70)
  58. 58.Minimum Falling Path Sum (LeetCode 931)
  59. 59.House Robber (LeetCode 198)
  60. 60.Longest Common Subsequence (LeetCode 1143)
  61. 61.Best Time to Buy and Sell Stock with Cooldown (LeetCode 309)
  62. 62.Domino and Tromino Tiling (LeetCode 790)
  63. 63.Jump Game - (Google, Microsoft, Amazon, Ebay, Meta) : Explanation ➕ Live Coding (LeetCode 55)
  64. 64.Flip String to Monotone Increasing - (GOOGLE) (LeetCode 926)
  65. 65.Flip String to Monotone Increasing - (GOOGLE) (LeetCode 926)
  66. 66.Minimum Path Sum (LeetCode 64)
  67. 67.Minimum Cost For Tickets (LeetCode 983)
  68. 68.Reducing Dishes - (MICROSOFT) (LeetCode 1402)
  69. 69.Scramble String - (GOOGLE) (LeetCode 87)
  70. 70.Number of Ways of Cutting a Pizza - (Google, TikTok) (LeetCode 1444)
  71. 71.Longest Palindromic Subsequence (LeetCode 516)
  72. 72.Maximum Value of K Coins From Piles (LeetCode 2218)
  73. 73.Number of Ways to Form a Target String Given a Dictionary (LeetCode 1639)
  74. 74.Number of Ways to Form a Target String Given a Dictionary (LeetCode 1639)
  75. 75.Profitable Schemes - (AMAZON) (LeetCode 879)
  76. 76.Restore The Array - (GOOGLE, MICROSOFT) (LeetCode 1416)
  77. 77.Minimum Insertion Steps to Make a String Palindrome (LeetCode 1312)
  78. 78.Find the Longest Valid Obstacle Course at Each Position (LeetCode 1964)
  79. 79.Uncrossed Lines (LeetCode 1035)
  80. 80.Solving Questions With Brainpower (LeetCode 2140)
  81. 81.Count Ways To Build Good Strings (LeetCode 2466)
  82. 82.Count Ways To Build Good Strings (LeetCode 2466)
  83. 83.Maximize Score After N Operations (LeetCode 1799)
  84. 84.Stone Game II (LeetCode 1140)
  85. 85.Stone Game III (LeetCode 1406)
  86. 86.Minimum Cost to Cut a Stick (LeetCode 1547)
  87. 87.Make Array Strictly Increasing (LeetCode 1187)
  88. 88.Number of Increasing Paths in a Grid (LeetCode 2328)
  89. 89.Best Time to Buy and Sell Stock with Transaction Fee (LeetCode 714)
  90. 90.Longest Arithmetic Subsequence (LeetCode 1027)
  91. 91.Tallest Billboard (LeetCode 956)
  92. 92.Count All Possible Routes (LeetCode 1575)
  93. 93.Longest Arithmetic Subsequence of Given Difference (LeetCode 1218)
  94. 94.Maximum Number of Events That Can Be Attended II (LeetCode 1751)
  95. 95.Smallest Sufficient Team (LeetCode 1125)
  96. 96.Number of Longest Increasing Subsequence (LeetCode 673)
  97. 97.Knight Probability in Chessboard (LeetCode 688)
  98. 98.All Possible Full Binary Trees (LeetCode 894)
  99. 99.Predict the Winner (LeetCode 486)
  100. 100.Soup Servings (LeetCode 808)
  101. 101.Strange Printer (LeetCode 664)
  102. 102.Minimum ASCII Delete Sum for Two Strings (LeetCode 712)
  103. 103.Word Break (LeetCode 139)
  104. 104.Unique Binary Search Trees II (LeetCode 95)
  105. 105.Number of Music Playlists (LeetCode 920)
  106. 106.Coin Change II (LeetCode 518)
  107. 107.Unique Paths II (LeetCode 63)
  108. 108.Check if There is a Valid Partition For The Array (LeetCode 2369)
  109. 109.Interleaving String (LeetCode 97)
  110. 110.Frog Jump (LeetCode 403)
  111. 111.Minimum Number of Taps to Open to Water a Garden (LeetCode 1326)
  112. 112.Extra Characters in a String (LeetCode 2707)
  113. 113.Unique Paths (LeetCode 62)
  114. 114.Champagne Tower (LeetCode 799)
  115. 115.Champagne Tower (LeetCode 799)
  116. 116.Integer Break (LeetCode 343)
  117. 117.Max Dot Product of Two Subsequences (LeetCode 1458)
  118. 118.Min Cost Climbing Stairs (LeetCode 746)
  119. 119.Painting the Walls (LeetCode 2742)
  120. 120.Number of Ways to Stay in the Same Place After Some Steps (LeetCode 1269)
  121. 121.Constrained Subsequence Sum (LeetCode 1425)
  122. 122.Longest Palindromic Substring (LeetCode 5)
  123. 123.Maximum Points After Collecting Coins From All Nodes (LeetCode 2920)
  124. 124.Knight Dialer (LeetCode 935)
  125. 125.Decode Ways (LeetCode 91)
  126. 126.Number of Dice Rolls With Target Sum (LeetCode 1155)
  127. 127.String Compression II (LeetCode 1531)
  128. 128.String Compression II (LeetCode 1531)
  129. 129.Minimum Difficulty of a Job Schedule (LeetCode 1335)
  130. 130.Count possible ways to construct buildings
  131. 131.Maximize the Number of Partitions After Operations (LeetCode 3003)
  132. 132.Out of Boundary Paths (LeetCode 576)
  133. 133.K Inverse Pairs Array (LeetCode 629)
  134. 134.Count digit groupings of a number
  135. 135.Partition Array for Maximum Sum (LeetCode 1043)
  136. 136.Perfect Squares (LeetCode 279)
  137. 137.Palindromic Substrings (LeetCode 647)
  138. 138.Cherry Pickup II (LeetCode 1463)
  139. 139.Maximum Strength of K Disjoint Subarrays (LeetCode 3077)
  140. 140.Valid Parenthesis String (LeetCode 678)
  141. 141.Minimum Sum of Values by Dividing Array (LeetCode 3117)
  142. 142.Longest Ideal Subsequence (LeetCode 2370)
  143. 143.Minimum Falling Path Sum II (LeetCode 1289)
  144. 144.Freedom Trail (LeetCode 514)
  145. 145.Find Number of Ways to Reach the K-th Stair (LeetCode 3154)
  146. 146.Student Attendance Record II (LeetCode 552)
  147. 147.Filling Bookcase Shelves (LeetCode 1105)
  148. 148.Maximum Number of Points with Cost (LeetCode 1937)
  149. 149.2 Keys Keyboard (LeetCode 650)
  150. 150.Maximum Number of Moves to Kill All Pawns (LeetCode 3283)
  151. 151.Extra Characters in a String (LeetCode 2707)
  152. 152.Count Square Submatrices with All Ones (LeetCode 1277)
  153. 153.Minimum Total Distance Traveled (LeetCode 2463)
  154. 154.Minimum Array Sum (LeetCode 3366)
  155. 155.Target Sum (LeetCode 494)
  156. 156.Maximum Sum of 3 Non-Overlapping Subarrays (LeetCode 689)
  157. 157.Length of Longest Fibonacci Subsequence (LeetCode 873)
  158. 158.Partition Equal Subset Sum (LeetCode 416)
  159. 159.Merge Operations for Minimum Travel Time (LeetCode 3538)
  160. 160.Count Number of Balanced Permutations (LeetCode 3343)
  161. 161.Print Longest Increasing Subsequence
  162. 162.Longest Unequal Adjacent Groups Subsequence II (LeetCode 2901)
  163. 163.Painting a Grid With Three Different Colors (LeetCode 1931)
  164. 164.Find the Original Typed String II (LeetCode 3333)
  165. 165.Find the Maximum Length of Valid Subsequence (LeetCode 3201)
  166. 166.Ways to Express an Integer as Sum of Powers (LeetCode 2787)
  167. 167.Length of Longest V-Shaped Diagonal Segment (LeetCode 3459)
  168. 168.Number of People Aware of a Secret (LeetCode 2327)
  169. 169.Triangle (LeetCode 120)
  170. 170.Minimum Score Triangulation of Polygon (LeetCode 1039)
  171. 171.Taking Maximum Energy From the Mystic Dungeon (LeetCode 3147)
  172. 172.Maximum Total Damage With Spell Casting (LeetCode 3186)
  173. 173.Find Sum of Array Product of Magical Sequences (LeetCode 3539)
  174. 174.Ones and Zeroes (LeetCode 474)
  175. 175.Paths in Matrix Whose Sum Is Divisible by K (LeetCode 2435)
  176. 176.Count Partitions With Max-Min Difference at Most K (LeetCode 3578)
  177. 177.Maximum Profit from Trading Stocks with Discounts (LeetCode 3562)
  178. 178.Best Time to Buy and Sell Stock V (LeetCode 3573)
  179. 179.Delete Columns to Make Sorted III (LeetCode 960)
  180. 180.Number of Ways to Paint N × 3 Grid (LeetCode 1411)
  181. 181.Minimum Cost Path with Teleportations (LeetCode 3651)
  182. 182.Trionic Array II (LeetCode 3640)
  183. 183.Find All Possible Stable Binary Arrays I (LeetCode 3129)
  184. 184.Find All Possible Stable Binary Arrays II (LeetCode 3130)
  185. 185.Find the String with LCP (LeetCode 2573)
  186. 186.Maximum Amount of Money Robot Can Earn (LeetCode 3418)
  187. 187.Maximum Walls Destroyed by Robots (LeetCode 3661)
  188. 188.Minimum Distance to Type a Word Using Two Fingers (LeetCode 1320)
  189. 189.Maximum Score From Grid Operations (LeetCode 3225)
  190. 190.Maximum Path Score in a Grid (LeetCode 3742)
  191. 191.Rotated Digits (LeetCode 788)
  192. 192.Maximum Number of Jumps to Reach the Last Index (LeetCode 2770)
  193. 193.Jump Game V (LeetCode 1340)
  194. 194.Jump Game VII (LeetCode 1871)
  195. 195.Total Waviness of Numbers in Range II (LeetCode 3753)
  196. 196.Number of ZigZag Arrays I (LeetCode 3699)
  197. 197.Number of Paths with Max Score (LeetCode 1301)
  198. 198.Find the Number of Subsequences With Equal GCD (LeetCode 3336)
  199. 199.Stone Game (LeetCode 877)
  200. 200.Stone Game IV (LeetCode 1510)
  201. 201.Stone Game V (LeetCode 1563)
  202. 202.Stone Game VIII (LeetCode 1872)
  203. 203.Distinct Subsequences (LeetCode 115)
  204. 204.Distinct Subsequences II (LeetCode 940)
  205. 205.Maximum Score of Non-overlapping Intervals (LeetCode 3414)
  206. 206.Maximum Number of Non-overlapping Palindrome Substrings (LeetCode 2472)
  207. 207.Number of Sets of K Non-Overlapping Line Segments (LeetCode 1621)
  208. 208.Find X Value of Array I (LeetCode 3524)
  209. 209.Check if There Is a Valid Parentheses String Path (LeetCode 2267)
  210. 210.N-th Tribonacci Number (LeetCode 1137)