All DP problems with categorization

Hi All,

I just completed my DP adventure which I started in last June and I would like to share my findings in this post. There are total 241 dp tagged problems in LeetCode as of Today, and 26 of them are locked so I only solved the public ones.

The followings are my categorization of the all 215 DP problems. (In each category, problems are sorted by LeetCode difficulty) Table version of the list: https://chuka231.blogspot.com/2021/01/leetcode-all-dynamic-programming.htmlarrow-up-right

Linear DP

https://leetcode.com/problems/climbing-stairs/arrow-up-right https://leetcode.com/problems/best-time-to-buy-and-sell-stock/arrow-up-right https://leetcode.com/problems/min-cost-climbing-stairs/arrow-up-right https://leetcode.com/problems/divisor-game/arrow-up-right https://leetcode.com/problems/decode-ways/arrow-up-right https://leetcode.com/problems/unique-binary-search-trees/arrow-up-right https://leetcode.com/problems/house-robber/arrow-up-right https://leetcode.com/problems/perfect-squares/arrow-up-right https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/arrow-up-right https://leetcode.com/problems/coin-change/arrow-up-right https://leetcode.com/problems/counting-bits/arrow-up-right https://leetcode.com/problems/integer-break/arrow-up-right https://leetcode.com/problems/count-numbers-with-unique-digits/arrow-up-right https://leetcode.com/problems/wiggle-subsequence/arrow-up-right https://leetcode.com/problems/partition-equal-subset-sum/arrow-up-right https://leetcode.com/problems/maximum-length-of-pair-chain/arrow-up-right https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/arrow-up-right https://leetcode.com/problems/delete-and-earn/arrow-up-right https://leetcode.com/problems/domino-and-tromino-tiling/arrow-up-right https://leetcode.com/problems/knight-dialer/arrow-up-right https://leetcode.com/problems/minimum-cost-for-tickets/arrow-up-right https://leetcode.com/problems/partition-array-for-maximum-sum/arrow-up-right https://leetcode.com/problems/filling-bookcase-shelves/arrow-up-right https://leetcode.com/problems/longest-arithmetic-subsequence-of-given-difference/arrow-up-right https://leetcode.com/problems/greatest-sum-divisible-by-three/arrow-up-right https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iii/arrow-up-right https://leetcode.com/problems/student-attendance-record-ii/arrow-up-right https://leetcode.com/problems/decode-ways-ii/arrow-up-right https://leetcode.com/problems/triples-with-bitwise-and-equal-to-zero/arrow-up-right https://leetcode.com/problems/maximum-profit-in-job-scheduling/arrow-up-right https://leetcode.com/problems/minimum-number-of-taps-to-open-to-water-a-garden/arrow-up-right https://leetcode.com/problems/count-all-valid-pickup-and-delivery-options/arrow-up-right https://leetcode.com/problems/stone-game-iii/arrow-up-right https://leetcode.com/problems/restore-the-array/arrow-up-right https://leetcode.com/problems/form-largest-integer-with-digits-that-add-up-to-target/arrow-up-right https://leetcode.com/problems/stone-game-iv/arrow-up-right https://leetcode.com/problems/coin-change-2/arrow-up-right

Knapsack

https://leetcode.com/problems/house-robber-ii/arrow-up-right https://leetcode.com/problems/ones-and-zeroes/arrow-up-right https://leetcode.com/problems/target-sum/arrow-up-right https://leetcode.com/problems/shopping-offers/arrow-up-right https://leetcode.com/problems/2-keys-keyboard/arrow-up-right https://leetcode.com/problems/minimum-swaps-to-make-sequences-increasing/arrow-up-right https://leetcode.com/problems/best-team-with-no-conflicts/arrow-up-right https://leetcode.com/problems/profitable-schemes/arrow-up-right https://leetcode.com/problems/tallest-billboard/arrow-up-right https://leetcode.com/problems/pizza-with-3n-slices/arrow-up-right https://leetcode.com/problems/reducing-dishes/arrow-up-right

Multi Dimension DP

https://leetcode.com/problems/triangle/arrow-up-right https://leetcode.com/problems/combination-sum-iv/arrow-up-right https://leetcode.com/problems/out-of-boundary-paths/arrow-up-right https://leetcode.com/problems/knight-probability-in-chessboard/arrow-up-right https://leetcode.com/problems/champagne-tower/arrow-up-right https://leetcode.com/problems/largest-sum-of-averages/arrow-up-right https://leetcode.com/problems/minimum-falling-path-sum/arrow-up-right https://leetcode.com/problems/video-stitching/arrow-up-right https://leetcode.com/problems/longest-arithmetic-subsequence/arrow-up-right https://leetcode.com/problems/stone-game-ii/arrow-up-right https://leetcode.com/problems/number-of-dice-rolls-with-target-sum/arrow-up-right https://leetcode.com/problems/dice-roll-simulation/arrow-up-right https://leetcode.com/problems/number-of-sets-of-k-non-overlapping-line-segments/arrow-up-right https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iv/arrow-up-right https://leetcode.com/problems/create-maximum-number/arrow-up-right https://leetcode.com/problems/frog-jump/arrow-up-right https://leetcode.com/problems/split-array-largest-sum/arrow-up-right https://leetcode.com/problems/freedom-trail/arrow-up-right https://leetcode.com/problems/minimum-number-of-refueling-stops/arrow-up-right https://leetcode.com/problems/number-of-music-playlists/arrow-up-right https://leetcode.com/problems/count-vowels-permutation/arrow-up-right https://leetcode.com/problems/minimum-falling-path-sum-ii/arrow-up-right https://leetcode.com/problems/minimum-distance-to-type-a-word-using-two-fingers/arrow-up-right https://leetcode.com/problems/minimum-difficulty-of-a-job-schedule/arrow-up-right https://leetcode.com/problems/number-of-ways-to-paint-n-3-grid/arrow-up-right https://leetcode.com/problems/build-array-where-you-can-find-the-maximum-exactly-k-comparisons/arrow-up-right https://leetcode.com/problems/number-of-ways-of-cutting-a-pizza/arrow-up-right https://leetcode.com/problems/paint-house-iii/arrow-up-right https://leetcode.com/problems/count-all-possible-routes/arrow-up-right

Interval DP

https://leetcode.com/problems/guess-number-higher-or-lower-ii/arrow-up-right https://leetcode.com/problems/arithmetic-slices/arrow-up-right https://leetcode.com/problems/predict-the-winner/arrow-up-right https://leetcode.com/problems/palindromic-substrings/arrow-up-right https://leetcode.com/problems/stone-game/arrow-up-right https://leetcode.com/problems/minimum-score-triangulation-of-polygon/arrow-up-right https://leetcode.com/problems/last-stone-weight-ii/arrow-up-right https://leetcode.com/problems/minimum-cost-tree-from-leaf-values/arrow-up-right https://leetcode.com/problems/stone-game-vii/arrow-up-right https://leetcode.com/problems/burst-balloons/arrow-up-right https://leetcode.com/problems/remove-boxes/arrow-up-right https://leetcode.com/problems/strange-printer/arrow-up-right https://leetcode.com/problems/valid-permutations-for-di-sequence/arrow-up-right https://leetcode.com/problems/minimum-cost-to-merge-stones/arrow-up-right https://leetcode.com/problems/allocate-mailboxes/arrow-up-right https://leetcode.com/problems/minimum-cost-to-cut-a-stick/arrow-up-right https://leetcode.com/problems/stone-game-v/arrow-up-right

Bit DP

https://leetcode.com/problems/can-i-win/arrow-up-right https://leetcode.com/problems/partition-to-k-equal-sum-subsets/arrow-up-right https://leetcode.com/problems/stickers-to-spell-word/arrow-up-right https://leetcode.com/problems/shortest-path-visiting-all-nodes/arrow-up-right https://leetcode.com/problems/smallest-sufficient-team/arrow-up-right https://leetcode.com/problems/maximum-students-taking-exam/arrow-up-right https://leetcode.com/problems/number-of-ways-to-wear-different-hats-to-each-other/arrow-up-right https://leetcode.com/problems/minimum-cost-to-connect-two-groups-of-points/arrow-up-right https://leetcode.com/problems/maximum-number-of-achievable-transfer-requests/arrow-up-right https://leetcode.com/problems/distribute-repeating-integers/arrow-up-right https://leetcode.com/problems/maximize-grid-happiness/arrow-up-right https://leetcode.com/problems/find-minimum-time-to-finish-all-jobs/arrow-up-right

Digit DP

https://leetcode.com/problems/non-negative-integers-without-consecutive-ones/arrow-up-right https://leetcode.com/problems/numbers-at-most-n-given-digit-set/arrow-up-right https://leetcode.com/problems/numbers-with-repeated-digits/arrow-up-right

DP on Trees

https://leetcode.com/problems/unique-binary-search-trees-ii/arrow-up-right https://leetcode.com/problems/house-robber-iii/arrow-up-right https://leetcode.com/problems/maximum-product-of-splitted-binary-tree/arrow-up-right https://leetcode.com/problems/linked-list-in-binary-tree/arrow-up-right https://leetcode.com/problems/longest-zigzag-path-in-a-binary-tree/arrow-up-right https://leetcode.com/problems/binary-tree-cameras/arrow-up-right https://leetcode.com/problems/maximum-sum-bst-in-binary-tree/arrow-up-right https://leetcode.com/problems/number-of-ways-to-reorder-array-to-get-same-bst/arrow-up-right

String DP

https://leetcode.com/problems/is-subsequence/arrow-up-right https://leetcode.com/problems/palindrome-partitioning/arrow-up-right https://leetcode.com/problems/palindrome-partitioning-ii/arrow-up-right https://leetcode.com/problems/word-break/arrow-up-right https://leetcode.com/problems/unique-substrings-in-wraparound-string/arrow-up-right https://leetcode.com/problems/minimum-ascii-delete-sum-for-two-strings/arrow-up-right https://leetcode.com/problems/longest-string-chain/arrow-up-right https://leetcode.com/problems/longest-happy-string/arrow-up-right https://leetcode.com/problems/longest-valid-parentheses/arrow-up-right https://leetcode.com/problems/distinct-subsequences/arrow-up-right https://leetcode.com/problems/word-break-ii/arrow-up-right https://leetcode.com/problems/count-the-repetitions/arrow-up-right https://leetcode.com/problems/concatenated-words/arrow-up-right https://leetcode.com/problems/count-different-palindromic-subsequences/arrow-up-right https://leetcode.com/problems/distinct-subsequences-ii/arrow-up-right https://leetcode.com/problems/longest-chunked-palindrome-decomposition/arrow-up-right https://leetcode.com/problems/palindrome-partitioning-iii/arrow-up-right https://leetcode.com/problems/find-all-good-strings/arrow-up-right https://leetcode.com/problems/string-compression-ii/arrow-up-right https://leetcode.com/problems/number-of-ways-to-form-a-target-string-given-a-dictionary/arrow-up-right

Probability DP

https://leetcode.com/problems/soup-servings/arrow-up-right https://leetcode.com/problems/new-21-game/arrow-up-right https://leetcode.com/problems/airplane-seat-assignment-probability/arrow-up-right

Classic DPs

Cadane's Algorithm

https://leetcode.com/problems/maximum-subarray/arrow-up-right https://leetcode.com/problems/maximum-product-subarray/arrow-up-right https://leetcode.com/problems/bitwise-ors-of-subarrays/arrow-up-right https://leetcode.com/problems/longest-turbulent-subarray/arrow-up-right https://leetcode.com/problems/maximum-subarray-sum-with-one-deletion/arrow-up-right https://leetcode.com/problems/k-concatenation-maximum-sum/arrow-up-right https://leetcode.com/problems/largest-divisible-subset/arrow-up-right https://leetcode.com/problems/length-of-longest-fibonacci-subsequence/arrow-up-right

LCS

https://leetcode.com/problems/longest-palindromic-substring/arrow-up-right https://leetcode.com/problems/longest-palindromic-subsequence/arrow-up-right https://leetcode.com/problems/maximum-length-of-repeated-subarray/arrow-up-right https://leetcode.com/problems/longest-common-subsequence/arrow-up-right https://leetcode.com/problems/regular-expression-matching/arrow-up-right https://leetcode.com/problems/wildcard-matching/arrow-up-right https://leetcode.com/problems/edit-distance/arrow-up-right https://leetcode.com/problems/interleaving-string/arrow-up-right https://leetcode.com/problems/shortest-common-supersequence/arrow-up-right https://leetcode.com/problems/minimum-insertion-steps-to-make-a-string-palindrome/arrow-up-right https://leetcode.com/problems/max-dot-product-of-two-subsequences/arrow-up-right

LIS

https://leetcode.com/problems/longest-increasing-subsequence/arrow-up-right https://leetcode.com/problems/number-of-longest-increasing-subsequence/arrow-up-right https://leetcode.com/problems/russian-doll-envelopes/arrow-up-right https://leetcode.com/problems/delete-columns-to-make-sorted-iii/arrow-up-right https://leetcode.com/problems/minimum-number-of-removals-to-make-mountain-array/arrow-up-right https://leetcode.com/problems/maximum-height-by-stacking-cuboids/arrow-up-right https://leetcode.com/problems/make-array-strictly-increasing/arrow-up-right

2D Grid Traversal

https://leetcode.com/problems/unique-paths/arrow-up-right https://leetcode.com/problems/unique-paths-ii/arrow-up-right https://leetcode.com/problems/minimum-path-sum/arrow-up-right https://leetcode.com/problems/maximum-non-negative-product-in-a-matrix/arrow-up-right https://leetcode.com/problems/where-will-the-ball-fall/arrow-up-right https://leetcode.com/problems/dungeon-game/arrow-up-right https://leetcode.com/problems/cherry-pickup/arrow-up-right https://leetcode.com/problems/number-of-paths-with-max-score/arrow-up-right https://leetcode.com/problems/cherry-pickup-ii/arrow-up-right https://leetcode.com/problems/kth-smallest-instructions/arrow-up-right

Cumulative Sum

https://leetcode.com/problems/range-sum-query-immutable/arrow-up-right https://leetcode.com/problems/maximal-square/arrow-up-right https://leetcode.com/problems/range-sum-query-2d-immutable/arrow-up-right https://leetcode.com/problems/largest-plus-sign/arrow-up-right https://leetcode.com/problems/push-dominoes/arrow-up-right https://leetcode.com/problems/largest-1-bordered-square/arrow-up-right https://leetcode.com/problems/count-square-submatrices-with-all-ones/arrow-up-right https://leetcode.com/problems/matrix-block-sum/arrow-up-right https://leetcode.com/problems/maximum-points-you-can-obtain-from-cards/arrow-up-right https://leetcode.com/problems/count-submatrices-with-all-ones/arrow-up-right https://leetcode.com/problems/ways-to-make-a-fair-array/arrow-up-right https://leetcode.com/problems/maximal-rectangle/arrow-up-right https://leetcode.com/problems/max-sum-of-rectangle-no-larger-than-k/arrow-up-right https://leetcode.com/problems/super-washing-machines/arrow-up-right https://leetcode.com/problems/maximum-sum-of-3-non-overlapping-subarrays/arrow-up-right https://leetcode.com/problems/number-of-submatrices-that-sum-to-target/arrow-up-right https://leetcode.com/problems/get-the-maximum-score/arrow-up-right

Hashmap (SubArray)

https://leetcode.com/problems/continuous-subarray-sum/arrow-up-right https://leetcode.com/problems/find-two-non-overlapping-sub-arrays-each-with-target-sum/arrow-up-right https://leetcode.com/problems/maximum-number-of-non-overlapping-subarrays-with-sum-equals-target/arrow-up-right

DP + Alpha(Tricks/DS)

https://leetcode.com/problems/arithmetic-slices-ii-subsequence/arrow-up-right https://leetcode.com/problems/odd-even-jump/arrow-up-right https://leetcode.com/problems/constrained-subsequence-sum/arrow-up-right https://leetcode.com/problems/delivering-boxes-from-storage-to-ports/arrow-up-right

Insertion DP

https://leetcode.com/problems/k-inverse-pairs-array/arrow-up-right

Graph DP

https://leetcode.com/problems/cheapest-flights-within-k-stops/arrow-up-right https://leetcode.com/problems/find-the-shortest-superstring/arrow-up-right

Memoization

https://leetcode.com/problems/minimum-jumps-to-reach-home/arrow-up-right https://leetcode.com/problems/scramble-string/arrow-up-right https://leetcode.com/problems/tiling-a-rectangle-with-the-fewest-squares/arrow-up-right https://leetcode.com/problems/number-of-ways-to-stay-in-the-same-place-after-some-steps/arrow-up-right https://leetcode.com/problems/jump-game-v/arrow-up-right https://leetcode.com/problems/minimum-number-of-days-to-eat-n-oranges/arrow-up-right

Binary Lifting

https://leetcode.com/problems/kth-ancestor-of-a-tree-node/arrow-up-right

Math

https://leetcode.com/problems/ugly-number-ii/arrow-up-right https://leetcode.com/problems/count-sorted-vowel-strings/arrow-up-right https://leetcode.com/problems/race-car/arrow-up-right https://leetcode.com/problems/super-egg-drop/arrow-up-right https://leetcode.com/problems/least-operators-to-express-number/arrow-up-right https://leetcode.com/problems/largest-multiple-of-three/arrow-up-right https://leetcode.com/problems/minimum-one-bit-operations-to-make-integers-zero/arrow-up-right

References:

Last updated