# Dynamic Programming

- [LIS](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/lis.md)
- [300 Longest Increasing Subsequence](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/lis/300-longest-increasing-subsequence.md)
- [334 Increasing Triplet Subsequence](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/lis/334-increasing-triplet-subsequence.md)
- [354 Russian Doll Envelopes](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/lis/354-russian-doll-envelopes.md)
- [376 Wiggle Subsequence](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/lis/376-wiggle-subsequence.md)
- [368 Largest Divisible Subset](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/lis/368-largest-divisible-subset.md)
- [646 Maximum Length of Pair Chain](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/lis/646-maximum-length-of-pair-chain.md)
- [673 Number of Longest Increasing Subsequence](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/lis/673-number-of-longest-increasing-subsequence.md)
- [Longest Common Subsequence](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/longest-common-subsequence.md)
- [5 Longest Palindromic Substring](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/longest-common-subsequence/5-longest-palindromic-substring.md)
- [72  Edit Distance](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/longest-common-subsequence/72-edit-distance.md)
- [115  Distinct Subsequences](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/longest-common-subsequence/115-distinct-subsequences.md)
- [392     Is Subsequence](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/longest-common-subsequence/392-is-subsequence.md)
- [516     Longest Palindromic Subsequence](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/longest-common-subsequence/516-longest-palindromic-subsequence.md)
- [583 Delete Operation for Two Strings](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/longest-common-subsequence/583-delete-operation-for-two-strings.md)
- [647 Palindromic Substrings](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/longest-common-subsequence/647-palindromic-substrings.md)
- [712 Minimum ASCII Delete Sum for Two Strings](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/longest-common-subsequence/712-minimum-ascii-delete-sum-for-two-strings.md)
- [Interval DP](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/interval-dp.md)
- [132     Palindrome Partitioning II](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/interval-dp/132-palindrome-partitioning-ii.md)
- [312     Burst Balloons](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/interval-dp/312-burst-balloons.md)
- [375     Guess Number Higher or Lower II](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/interval-dp/375-guess-number-higher-or-lower-ii.md)
- [471 Encode String with Shortest Length](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/interval-dp/471-encode-string-with-shortest-length.md)
- [486     Predict the Winner](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/interval-dp/486-predict-the-winner.md)
- [516     Longest Palindromic Subsequence](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/interval-dp/516-longest-palindromic-subsequence.md)
- [546     Remove Boxes](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/interval-dp/546-removeboxes.md)
- [Knapsack Problem](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/knapsack-problem.md)
- [322    Coin Change](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/knapsack-problem/322-coin-change.md)
- [377    Combination Sum IV](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/knapsack-problem/377-combination-sum-iv.md)
- [416    Partition Equal Subset Sum](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/knapsack-problem/416-partition-equal-subset-sum.md)
- [474     Ones and Zeroes](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/knapsack-problem/474-ones-and-zeroes.md)
- [494     Target Sum](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/knapsack-problem/494-target-sum.md)
- [518 Coin Change 2](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/knapsack-problem/518-coin-change-2.md)
- [10     Regular Expression Matching](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/10-regular-expression-matching.md)
- [32     Longest Valid Parentheses](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/32-longest-valid-parentheses.md)
- [44     Wildcard Matching](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/44-wildcardmatching.md)
- [53     Maximum Subarray](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/53-maximum-subarray.md)
- [62     Unique Paths](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/62-unique-paths.md)
- [63     Unique Paths II](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/63-unique-paths-ii.md)
- [64     Minimum Path Sum](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/64-minimum-path-sum.md)
- [70     Climbing Stairs](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/70-climbing-stairs.md)
- [85     Maximal Rectangle](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/85-maximal-rectangle.md)
- [87     Scramble String](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/87-scramble-string.md)
- [91     Decode Ways](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/91-decodeways.md)
- [95     Unique Binary Search Trees II](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/95-unique-binary-search-trees-ii.md)
- [96     Unique Binary Search Trees](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/96-unique-binary-search-trees.md)
- [97     Interleaving String](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/97-interleaving-string.md)
- [120     Triangle](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/120-triangle.md)
- [121     Best Time to Buy and Sell Stock](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/121-best-time-to-buy-and-sell-stock.md)
- [122 Best Time to Buy and Sell Stock II](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/122-best-time-to-buy-and-sell-stock-ii.md)
- [123     Best Time to Buy and Sell Stock III](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/123-best-time-to-buy-and-sell-stock-iii.md)
- [139     Word Break](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/139-word-break.md)
- [140     Word Break II](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/140-word-break-ii.md)
- [152     Maximum Product Subarray](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/152-maximum-product-subarray.md)
- [174     Dungeon Game](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/174-dungeon-game.md)
- [188     Best Time to Buy and Sell Stock IV](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/188-best-time-to-buy-and-sell-stock-iv.md)
- [198     House Robber](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/198-house-robber.md)
- [213     House Robber II](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/213-house-robber-ii.md)
- [221     Maximal Square](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/221-maximal-square.md)
- [238 Product of Array Except Self](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/238-product-of-array-except-self.md)
- [256     Paint House](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/256-paint-house.md)
- [264     Ugly Number II](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/264-ugly-number-ii.md)
- [265     Paint House II](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/265-paint-house-ii.md)
- [276     Paint Fence](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/276-paint-fence.md)
- [279     Perfect Squares](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/279-perfect-squares.md)
- [303     Range Sum Query - Immutable](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/303-range-sum-query-immutable.md)
- [304     Range Sum Query 2D - Immutable](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/304-range-sum-query-2d-immutable.md)
- [309     Best Time to Buy and Sell Stock with Cooldown](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/309-best-time-to-buy-and-sell-stock-with-cooldown.md)
- [321     Create Maximum Number](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/321-create-maximum-number.md)
- [338     Counting Bits](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/338-counting-bits.md)
- [343     Integer Break](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/343-integer-break.md)
- [361 Bomb Enemy](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/361-bomb-enemy.md)
- [363 Max Sum of Rectangle No Larger Than K](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/363-max-sum-of-rectangle-no-larger-than-k.md)
- [368     Largest Divisible Subset](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/368-largest-divisible-subset.md)
- [403     Frog Jump](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/403-frog-jump.md)
- [410     Split Array Largest Sum](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/410-split-array-largest-sum.md)
- [413     Arithmetic Slices](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/413-arithmetic-slices.md)
- [418     Sentence Screen Fitting](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/418-sentence-screen-fitting.md)
- [446     Arithmetic Slices II - Subsequence](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/446-arithmetic-slices-ii-subsequence.md)
- [464     Can I Win](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/464-can-i-win.md)
- [466     Count The Repetitions](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/466-count-the-repetitions.md)
- [467     Unique Substrings in Wraparound String](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/467-unique-substrings-in-wraparound-string.md)
- [471     Encode String with Shortest Length](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/471-encode-string-with-shortest-length.md)
- [514     Freedom Trail](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/514-freedom-trail.md)
- [517     Super Washing Machines](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/517-super-washing-machines.md)
- [523     Continuous Subarray Sum](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/523-continuous-subarray-sum.md)
- [552     Student Attendance Record II](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/552-student-attendance-record-ii.md)
- [562  Longest Line of Consecutive One in Matrix](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/562-longest-line-of-consecutive-one-in-matrix.md)
- [568     Maximum Vacation Days](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/568-maximum-vacation-days.md)
- [576     Out of Boundary Paths](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/576-out-of-boundary-paths.md)
- [600     Non-negative Integers without Consecutive Ones](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/600-non-negative-integers-without-consecutive-ones.md)
- [629     K Inverse Pairs Array](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/629-k-inverse-pairs-array.md)
- [638     Shopping Offers](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/638-shopping-offers.md)
- [639     Decode Ways II](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/639-decodeways-ii.md)
- [650     2 Keys Keyboard](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/650-2-keys-keyboard.md)
- [651     4 Keys Keyboard](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/651-4-keys-keyboard.md)
- [656     Coin Path](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/656-coin-path.md)
- [688     Knight Probability in Chessboard](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/688-knight-probability-in-chessboard.md)
- [689     Maximum Sum of 3 Non-Overlapping Subarrays](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/689-maximum-sum-of-3-non-overlapping-subarrays.md)
- [691     Stickers to Spell Word](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/691-stickers-to-spell-word.md)
- [698     Partition to K Equal Sum Subsets](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/698-partition-to-k-equal-sum-subsets.md)
- [714     Best Time to Buy and Sell Stock with Transaction Fee](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/714-best-time-to-buy-and-sell-stock-with-transaction-fee.md)
- [718     Maximum Length of Repeated Subarray](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/718-maximum-length-of-repeated-subarray.md)
- [727     Minimum Window Subsequence](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/727-minimum-window-subsequence.md)
- [730     Count Different Palindromic Subsequences](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/730-count-different-palindromic-subsequences.md)
- [740     Delete and Earn](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/740-delete-and-earn.md)
- [741     Cherry Pickup](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/741-cherry-pickup.md)
- [746     Min Cost Climbing Stairs](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/746-min-cost-climbing-stairs.md)
- [750     Number Of Corner Rectangles](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/750-number-of-corner-rectangles.md)
- [764     Largest Plus Sign](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/764-largest-plus-sign.md)
- [787     Cheapest Flights Within K Stops](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/787-cheapest-flights-within-k-stops.md)
- [790     Domino and Tromino Tiling](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/790-dominoand-tromino-tiling.md)
- [801     Minimum Swaps To Make Sequences Increasing](https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming/801-minimum-swapsto-make-sequences-increasing.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://protegejj.gitbook.io/algorithm-practice/leetcode/dynamic-programming.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
