2D Dynamic Programming & Knapsack
Advanced & DPGrid optimization, 0/1 knapsack, and dual string alignments
542 problems·11 Easy·275 Medium·256 Hard
Pattern Study Guide & Cheat Sheet▼
Solve problems with two independent dimensions (e.g. two strings, grid cells, or items vs capacity) by filling an M × N table where dp[i][j] transitions from adjacent predecessors.
Core Invariant: Table grid invariant: Every cell `dp[i][j]` is derived from `dp[i-1][j]` (delete/skip first), `dp[i][j-1]` (insert/skip second), or `dp[i-1][j-1]` (match/replace both). Base row `i=0` and col `j=0` define boundary conditions.
Recognize it (Keywords & Signals)
- Compare two strings: Longest Common Subsequence, Edit Distance
- Grid path counting / minimum path sum
- 0/1 Knapsack problem (subset sum with capacity)
- Distinct subsequences / interleaved strings
- Palindromic substrings / longest palindromic subsequence
When NOT to use
Greedy works (e.g. Fractional Knapsack), or dimensions are sparse with massive bounds (use memoized recursion).
How to solve (Step-by-step)
- 1.Define `dp[i][j]`: e.g. LCS length of `text1[0..i-1]` and `text2[0..j-1]`.
- 2.Create table: `dp = [[0] * (n + 1) for _ in range(m + 1)]`.
- 3.Initialize base cases (row 0 and column 0).
- 4.Fill row by row: if characters match `text1[i-1] == text2[j-1]`, take diagonal `dp[i-1][j-1] + 1`; else take `max(dp[i-1][j], dp[i][j-1])`.
- 5.Return bottom-right cell `dp[m][n]`.
Watch for (Interview Traps)
- Python list multiplication bug: `[[0] * n] * m` makes shallow copies of rows! Always use comprehension `[[0] * n for _ in range(m)]`
- Mismatch between 1-based DP table indices `i, j` and 0-based string characters `s[i-1]`
- Rolling array for Knapsack requires iterating capacity backwards to prevent reusing the same item
2D DP on Two Strings (Longest Common Subsequence)
def longest_common_subsequence(text1: str, text2: str) -> int:
m, n = len(text1), len(text2)
# dp[i][j] = LCS length between text1[:i] and text2[:j]
dp = [[0] * (n + 1) for _ in range(m + 1)]
for i in range(1, m + 1):
for j in range(1, n + 1):
if text1[i - 1] == text2[j - 1]:
# Characters match: extend diagonal subsequence
dp[i][j] = 1 + dp[i - 1][j - 1]
else:
# Discard either char from text1 or text2
dp[i][j] = max(dp[i - 1][j], dp[i][j - 1])
return dp[m][n]- Cost
- O(m * n) quadratic cell visits · O(m * n) table, reducible to O(min(m, n)) rolling row (Can compress to 1D rolling array if only previous row is needed.)
Canonical problems
#1143 Longest Common Subsequence: Archetypal string comparison 2D table
#72 Edit Distance: Operations match insert (i, j-1), delete (i-1, j), replace (i-1, j-1)
#62 Unique Paths: Grid path sum: dp[r][c] = dp[r-1][c] + dp[r][c-1]
#516 Longest Palindromic Subsequence: LCS between string and its reverse, or interval 2D DP
⌘K
Medium·43 companies·Max freq 100%·Acc 78.9%
ZenefitsTexas InstrumentsShift Technology+40
Hard·23 companies·Max freq 100%·Acc 54.8%
Pony.aiPony.aiAirbnb+20
Medium·22 companies·Max freq 100%·Acc 42.2%
HTCMakeMyTripStripe+19
Hard·20 companies·Max freq 93%·Acc 56.8%
DoorDashWeRideDuolingo+17
Medium·17 companies·Max freq 100%·Acc 68.5%
Texas InstrumentsSpaceXGoldman Sachs+14
Medium·15 companies·Max freq 68%·Acc 65.7%
MAQ SoftwareNutanixLinkedIn+12
Medium·14 companies·Max freq 100%·Acc 0.7%
scalerNeetCode 150NeetCode 150+11
Hard·13 companies·Max freq 100%·Acc 50.7%
PubMaticNielsenHashedIn+10
Hard·13 companies·Max freq 100%·Acc 51.0%
Akuna CapitalDE ShawMeesho+10
#740Delete and Earn
Medium·13 companies·Max freq 100%·Acc 57.4%
Akuna CapitalMorgan StanleyAccenture+10
Medium·12 companies·Max freq 90%·Acc 50.7%
Two SigmaMakeMyTripSprinklr+9
Hard·11 companies·Max freq 100%·Acc 41.5%
CitadelMillenniumDialpad+8
Hard·11 companies·Max freq 77%·Acc 60.0%
UberMathWorksMeesho+8
Hard·10 companies·Max freq 100%·Acc 56.4%
DunzoSnowflakeMeesho+7
Medium·10 companies·Max freq 80%·Acc 62.4%
GeicoNeetCode 150NeetCode 150+7
Hard·9 companies·Max freq 100%·Acc 23.9%
ArcesiumSamsungTexas Instruments+6
Easy·9 companies·Max freq 70%·Acc 68.5%
NeetCode 150NeetCode 150Squarepoint Capital+6
Medium·9 companies·Max freq 55%·Acc 72.3%
AppleCitadelTikTok+6
Medium·8 companies·Max freq 100%·Acc 71.3%
YandexVKtcs+5
Hard·8 companies·Max freq 100%·Acc 0.6%
TurvoMathWorksMicrosoft+5
Medium·8 companies·Max freq 100%·Acc 62.8%
Salesforce6senseNvidia+5
Hard·8 companies·Max freq 89%·Acc 80.5%
FortinetIntuitCitadel+5
Medium·8 companies·Max freq 75%·Acc 38.8%
LinkedInZeta GlobalAmazon+5
Medium·8 companies·Max freq 75%·Acc 58.9%
Squarepoint CapitalOracleVisa+5
Hard·8 companies·Max freq 67%·Acc 78.2%
Dream11GoogleSprinklr+5
Medium·7 companies·Max freq 100%·Acc 68.2%
redbusUrban CompanyMicrosoft+4
Medium·7 companies·Max freq 100%·Acc 57.5%
BaiduGoldman SachsAmazon+4
Medium·7 companies·Max freq 100%·Acc 51.8%
Pony.aiPublicis SapientPony.ai+4
Medium·7 companies·Max freq 100%·Acc 45.8%
GuidewireAmerican ExpressGeico+4
Medium·7 companies·Max freq 88%·Acc 45.1%
CitadelPhonePeAmazon+4
Medium·7 companies·Max freq 88%·Acc 51.5%
CitadelNetflixPalantir+4
Medium·7 companies·Max freq 75%·Acc 57.0%
DE ShawGoldman SachsAmazon+4
Hard·7 companies·Max freq 65%·Acc 41.9%
PhonePeDatabricksAirbnb+4
Hard·7 companies·Max freq 51%·Acc 77.0%
IntuitGoogleUber+4
Hard·7 companies·Max freq 41%·Acc 74.2%
AccentureIBMOracle+4
Hard·7 companies·Max freq 40%·Acc 69.6%
InfosysAmazonUber+4
Medium·6 companies·Max freq 100%·Acc 55.7%
DirectiMicrosoftAmazon+3
Medium·6 companies·Max freq 100%·Acc 50.1%
SnapdealTuringMicrosoft+3
Medium·6 companies·Max freq 100%·Acc 51.0%
NaviZeta GlobalGoogle+3
Medium·6 companies·Max freq 100%·Acc 57.2%
spinnyGoldman SachsCitadel+3
Medium·6 companies·Max freq 100%·Acc 60.6%
NCRArcesiumBloomberg+3
Medium·6 companies·Max freq 89%·Acc 73.4%
DeltaXDeutsche BankAmazon+3
Hard·6 companies·Max freq 77%·Acc 0.7%
InfosysBloombergGoogle+3
Hard·6 companies·Max freq 63%·Acc 59.9%
General MotorsMetaGoogle+3
Hard·6 companies·Max freq 41%·Acc 54.8%
PayPalMicrosoftBloomberg+3
Medium·6 companies·Max freq 38%·Acc 80.8%
AmazonGoogleGoldman Sachs+3
Medium·6 companies·Max freq 31%·Acc 70.9%
InfosysGoogleAmazon+3
Medium·6 companies·Max freq 25%·Acc 52.3%
MetaTikTokBloomberg+3
Medium·6 companies·Max freq 25%·Acc 57.1%
UberGoogleBloomberg+3
Hard·5 companies·Max freq 100%·Acc 56.2%
VisaRobloxAmazon+2
Hard·5 companies·Max freq 100%·Acc 46.3%
JD.comSprinklrHashedIn+2
Medium·5 companies·Max freq 100%·Acc 0.5%
Two SigmaAmazonMicrosoft+2
Hard·5 companies·Max freq 100%·Acc 55.1%
BaiduAmazonBloomberg+2
Medium·5 companies·Max freq 100%·Acc 47.8%
PhonePeBloombergAmazon+2
Hard·5 companies·Max freq 100%·Acc 42.9%
Pocket GemsAmazonBloomberg+2
Hard·5 companies·Max freq 91%·Acc 78.3%
ExpediaOracleServiceNow+2
Hard·5 companies·Max freq 88%·Acc 44.9%
SoFiLinkedInOracle+2
Medium·5 companies·Max freq 88%·Acc 62.5%
CoinDCXCitadelAmazon+2
Medium·5 companies·Max freq 80%·Acc 53.4%
SalesforcePayPalWayfair+2
Medium·5 companies·Max freq 63%·Acc 53.6%
IBMGoogleMeta+2
Hard·5 companies·Max freq 63%·Acc 31.7%
SalesforceAmazonBloomberg+2
Hard·5 companies·Max freq 60%·Acc 61.8%
NutanixMicrosoftOracle+2
Hard·5 companies·Max freq 56%·Acc 57.2%
JuspayLinkedInGoogle+2
Medium·5 companies·Max freq 55%·Acc 48.3%
ServiceNowBlackRockOracle+2
Hard·5 companies·Max freq 53%·Acc 46.0%
PinterestAmazonMicrosoft+2
Medium·5 companies·Max freq 50%·Acc 67.5%
UberMetaAmazon+2
Hard·5 companies·Max freq 27%·Acc 69.4%
MicrosoftAmazonGoogle+2
Hard·5 companies·Max freq 25%·Acc 41.8%
MetaAmazonBloomberg+2
Medium·5 companies·Max freq 25%·Acc 37.6%
MetaAmazonGoogle+2
Medium·5 companies·Max freq 25%·Acc 49.8%
BloombergGoogleAmazon+2
Hard·5 companies·Max freq 18%·Acc 45.5%
GoogleMicrosoftAmazon+2
Medium·4 companies·Max freq 100%·Acc 44.1%
NagarroAmazonMicrosoft+1
Hard·4 companies·Max freq 100%·Acc 69.4%
Deutsche BankBlackRockMeta+1
Medium·4 companies·Max freq 100%·Acc 59.2%
QuinceMetaBloomberg+1
Medium·4 companies·Max freq 100%·Acc 71.1%
TripleByteMetaAmazon+1
Hard·4 companies·Max freq 100%·Acc 0.6%
Hudson River TradingHudson River TradingGoogle+1
Medium·4 companies·Max freq 100%·Acc 40.5%
MitsogoGrammarlyMorgan Stanley+1
Medium·4 companies·Max freq 88%·Acc 67.9%
MathWorksPhonePeBloomberg+1
Medium·4 companies·Max freq 88%·Acc 22.0%
DE ShawAmazonBloomberg+1
Medium·4 companies·Max freq 75%·Acc 50.9%
InfosysAmazonBloomberg+1
Hard·4 companies·Max freq 65%·Acc 48.0%
InfosysAmazonMicrosoft+1
Hard·4 companies·Max freq 63%·Acc 59.6%
AtlassianAmazonMicrosoft+1
Medium·4 companies·Max freq 54%·Acc 45.6%
MathWorksAmazonMeta+1
Hard·4 companies·Max freq 50%·Acc 48.1%
LinkedInWalmart LabsUber+1
Medium·4 companies·Max freq 50%·Acc 31.4%
AmazonBloombergMicrosoft+1
Hard·4 companies·Max freq 30%·Acc 58.7%
AppleGoogleAmazon+1
Medium·4 companies·Max freq 26%·Acc 71.0%
GoogleBloombergAmazon+1
Medium·4 companies·Max freq 25%·Acc 53.1%
AmazonMetaMicrosoft+1
Hard·4 companies·Max freq 25%·Acc 72.2%
GoogleMetaAmazon+1
Medium·4 companies·Max freq 25%·Acc 54.9%
AmazonGoogleMeta+1
Medium·4 companies·Max freq 25%·Acc 51.6%
GoogleMicrosoftMeta+1
Medium·4 companies·Max freq 21%·Acc 0.6%
BloombergGoogleMeta+1
Hard·4 companies·Max freq 18%·Acc 56.7%
BloombergAmazonMicrosoft+1
Medium·4 companies·Max freq 15%·Acc 53.6%
GoogleMetaAmazon+1
Medium·4 companies·Max freq 13%·Acc 58.5%
MetaAmazonMicrosoft+1
Medium·3 companies·Max freq 100%·Acc 48.5%
GrabGeicoPalo Alto Networks
Hard·3 companies·Max freq 100%·Acc 0.3%
GameskraftUberLinkedIn
Hard·3 companies·Max freq 100%·Acc 24.0%
HuaweiWorldQuantDE Shaw
Hard·3 companies·Max freq 100%·Acc 46.4%
MindtickleRobloxDE Shaw
Hard·3 companies·Max freq 100%·Acc 64.9%
AckoDoorDashGoogle
Hard·3 companies·Max freq 100%·Acc 53.8%
ForUsAllAmazonMicrosoft
Hard·3 companies·Max freq 100%·Acc 54.6%
ZomatoBloombergMicrosoft
Medium·3 companies·Max freq 100%·Acc 51.2%
tokopediaMicrosoftGoogle
Medium·3 companies·Max freq 100%·Acc 0.5%
Morgan StanleyGoogleMicrosoft
Medium·3 companies·Max freq 82%·Acc 61.0%
SprinklrAmazonGoogle
Medium·3 companies·Max freq 75%·Acc 40.1%
IntuitMetaAmazon
Medium·3 companies·Max freq 67%·Acc 51.0%
Dream11DE ShawAmazon
Medium·3 companies·Max freq 64%·Acc 53.0%
Zeta GlobalGoogleBloomberg
Medium·3 companies·Max freq 38%·Acc 65.2%
MicrosoftAmazonBloomberg
Hard·3 companies·Max freq 29%·Acc 41.8%
MicrosoftAmazonGoogle
Hard·3 companies·Max freq 25%·Acc 81.5%
AmazonBloombergGoogle
Medium·3 companies·Max freq 25%·Acc 67.7%
AmazonMicrosoftGoogle
Medium·3 companies·Max freq 25%·Acc 52.8%
BloombergGoogleAmazon
Hard·3 companies·Max freq 13%·Acc 72.5%
BloombergAmazonGoogle
Medium·3 companies·Max freq 13%·Acc 22.0%
MetaAmazonBloomberg
Hard·2 companies·Max freq 100%·Acc 65.5%
DunzoGoogle
Medium·2 companies·Max freq 100%·Acc 48.9%
GrowwMicrosoft
Hard·2 companies·Max freq 100%·Acc 43.5%
BitGoMeta
Medium·2 companies·Max freq 100%·Acc 51.5%
fourkitesMeta
Medium·2 companies·Max freq 100%·Acc 44.7%
ArcesiumAmazon
Medium·2 companies·Max freq 100%·Acc 67.5%
MicrostrategyToptal
Hard·2 companies·Max freq 100%·Acc 65.5%
VMwareGoogle
Medium·2 companies·Max freq 100%·Acc 43.4%
MAQ SoftwareGoogle
Hard·2 companies·Max freq 95%·Acc 31.8%
SprinklrAmazon
Hard·2 companies·Max freq 88%·Acc 32.7%
Media.netMedia.net
Medium·2 companies·Max freq 88%·Acc 17.0%
JuspayGoogle
Hard·2 companies·Max freq 75%·Acc 38.7%
DE ShawGoogle
Hard·2 companies·Max freq 75%·Acc 0.3%
SnowflakeBNY Mellon
Hard·2 companies·Max freq 75%·Acc 23.4%
RubrikGoogle
Hard·2 companies·Max freq 75%·Acc 15.8%
InfosysGoogle
Medium·2 companies·Max freq 69%·Acc 49.5%
MicrostrategyGoogle
Hard·2 companies·Max freq 63%·Acc 26.7%
TikTokGoogle
Medium·2 companies·Max freq 63%·Acc 35.1%
SwiggyAmazon
Hard·2 companies·Max freq 38%·Acc 61.7%
InfosysMeta
Medium·2 companies·Max freq 29%·Acc 54.3%
GoogleMeta
Medium·2 companies·Max freq 25%·Acc 37.1%
AmazonGoogle
Hard·2 companies·Max freq 25%·Acc 72.3%
GoogleMicrosoft
Medium·2 companies·Max freq 16%·Acc 41.4%
GoogleMicrosoft
Hard·2 companies·Max freq 13%·Acc 65.0%
BloombergGoogle
Medium·2 companies·Max freq 13%·Acc 43.9%
MetaGoogle
Hard·2 companies·Max freq 13%·Acc 56.5%
MetaGoogle
Medium·2 companies·Max freq 13%·Acc 51.0%
MetaAmazon
Hard·1 companies·Max freq 100%·Acc 50.0%
MakeMyTrip
Medium·1 companies·Max freq 100%·Acc 27.8%
Zeta Global
Hard·1 companies·Max freq 100%·Acc 41.6%
Docusign
Hard·1 companies·Max freq 100%·Acc 53.4%
HiLabs
Medium·1 companies·Max freq 100%·Acc 71.1%
Bridgewater Associates
Medium·1 companies·Max freq 100%·Acc 57.4%
Meesho
Hard·1 companies·Max freq 90%·Acc 47.0%
Sprinklr
Medium·1 companies·Max freq 88%·Acc 40.5%
ByteDance
Medium·1 companies·Max freq 88%·Acc 40.8%
Adobe
Medium·1 companies·Max freq 83%·Acc 32.1%
DE Shaw
Hard·1 companies·Max freq 75%·Acc 36.9%
DE Shaw
Medium·1 companies·Max freq 75%·Acc 33.0%
Snowflake
Hard·1 companies·Max freq 75%·Acc 32.2%
Visa
Medium·1 companies·Max freq 67%·Acc 42.4%
Turing
Medium·1 companies·Max freq 63%·Acc 56.5%
Salesforce
Hard·1 companies·Max freq 50%·Acc 38.6%
Goldman Sachs
Medium·1 companies·Max freq 50%·Acc 65.3%
Uber
Medium·1 companies·Max freq 38%·Acc 34.3%
Microsoft
Medium·1 companies·Max freq 29%·Acc 22.6%
Google
Medium·1 companies·Max freq 27%·Acc 72.4%
Microsoft
Medium·1 companies·Max freq 25%·Acc 46.1%
Amazon
Medium·1 companies·Max freq 25%·Acc 52.2%
Google
Medium·1 companies·Max freq 25%·Acc 38.0%
Google
Medium·1 companies·Max freq 25%·Acc 41.5%
Google
Medium·1 companies·Max freq 25%·Acc 28.0%
Google
Hard·1 companies·Max freq 25%·Acc 50.2%
Google
Hard·1 companies·Max freq 25%·Acc 49.9%
Google
Medium·1 companies·Max freq 25%·Acc 36.9%
Google
Hard·1 companies·Max freq 25%·Acc 43.5%
Google
Hard·1 companies·Max freq 25%·Acc 42.1%
Google
Hard·1 companies·Max freq 25%·Acc 61.9%
Google
Hard·1 companies·Max freq 25%·Acc 49.9%
Google
Medium·1 companies·Max freq 25%·Acc 81.3%
Google
Medium·1 companies·Max freq 25%·Acc 35.0%
Google
Medium·1 companies·Max freq 25%·Acc 47.5%
Google
Hard·1 companies·Max freq 25%·Acc 34.1%
Google
Medium·1 companies·Max freq 13%·Acc 31.1%
Bloomberg
Hard·1 companies·Max freq 13%·Acc 13.6%
Microsoft
Medium·1 companies·Max freq 13%·Acc 37.1%
Google
Medium·1 companies·Max freq 13%·Acc 52.5%
Google
Hard·1 companies·Max freq 13%·Acc 18.2%
Google
# | Problem | Difficulty | Top Companies↓ | Frequency | Acceptance | |
|---|---|---|---|---|---|---|
| #121 | Best Time to Buy and Sell Stock ArrayDynamic Programming | Easy | 100% | 57.0% | ||
| #5 | Longest Palindromic Substring Two PointersStringDynamic ProgrammingManacher | Medium | 100% | 38.2% | ||
| #42 | Trapping Rain Water ArrayTwo PointersDynamic ProgrammingStackMonotonic Stack | Hard | 100% | 67.7% | ||
| #53 | Maximum Subarray ArrayDivide and ConquerDynamic Programming | Medium | 100% | 53.5% | ||
| #322 | Coin Change ArrayDynamic ProgrammingBreadth-First SearchKnapsack ProblemComplete Knapsack | Medium | 100% | 48.7% | ||
| #22 | Generate Parentheses StringDynamic ProgrammingBacktrackingBracket Sequences | Medium | 100% | 78.9% | ||
| #198 | House Robber ArrayDynamic Programming | Medium | 100% | 53.4% | ||
| #55 | Jump Game ArrayDynamic ProgrammingGreedy | Medium | 100% | 41.2% | ||
| #139 | Word Break ArrayHash TableStringDynamic ProgrammingTrieMemoizationBrute-Force Search | Medium | 100% | 49.6% | ||
| #221 | Maximal Square ArrayDynamic ProgrammingMatrix | Medium | 100% | 50.6% | ||
| #45 | Jump Game II ArrayDynamic ProgrammingGreedy | Medium | 100% | 43.1% | ||
| #124 | Binary Tree Maximum Path Sum Dynamic ProgrammingTreeDepth-First SearchBinary TreeDP on Trees | Hard | 100% | 42.5% | ||
| #10 | Regular Expression Matching StringDynamic ProgrammingRecursion | Hard | 100% | 31.2% | ||
| #647 | Palindromic Substrings Two PointersStringDynamic Programming | Medium | 100% | 73.0% | ||
| #32 | Longest Valid Parentheses StringDynamic ProgrammingStackBracket Sequences | Hard | 93% | 39.1% | ||
| #152 | Maximum Product Subarray ArrayDynamic Programming | Medium | 100% | 36.7% | ||
| #72 | Medium | 77% | 60.9% | |||
| #62 | Unique Paths MathDynamic ProgrammingCombinatorics | Medium | 67% | 67.0% | ||
| #1235 | Maximum Profit in Job Scheduling ArrayBinary SearchDynamic ProgrammingSorting | Hard | 100% | 54.8% | ||
| #410 | Split Array Largest Sum ArrayBinary SearchDynamic ProgrammingGreedyPrefix Sum | Hard | 100% | 60.9% | ||
| #787 | Cheapest Flights Within K Stops Dynamic ProgrammingDepth-First SearchBreadth-First SearchGraph TheoryHeap (Priority Queue)Shortest Path | Medium | 100% | 42.2% | ||
| #213 | House Robber II ArrayDynamic Programming | Medium | 78% | 0.5% | ||
| #435 | Non-overlapping Intervals ArrayDynamic ProgrammingGreedySorting | Medium | 88% | 57.4% | ||
| #1143 | Longest Common Subsequence StringDynamic ProgrammingLongest Common Subsequence | Medium | 88% | 59.3% | ||
| #329 | Longest Increasing Path in a Matrix ArrayDynamic ProgrammingDepth-First SearchBreadth-First SearchGraph TheoryTopological SortMemoizationMatrixDirected Acyclic Graph | Hard | 93% | 56.8% | ||
| #678 | Valid Parenthesis String StringDynamic ProgrammingStackGreedyBracket Sequences | Medium | 100% | 40.3% | ||
| #416 | Partition Equal Subset Sum ArrayDynamic ProgrammingKnapsack Problem0-1 Knapsack | Medium | 100% | 0.5% | ||
| #44 | Wildcard Matching StringDynamic ProgrammingGreedyRecursion | Hard | 100% | 32.3% | ||
| #140 | Word Break II ArrayHash TableStringDynamic ProgrammingBacktrackingTrieMemoization | Hard | 100% | 55.8% | ||
| #312 | Burst Balloons ArrayDynamic Programming | Hard | 100% | 63.9% | ||
| #968 | Binary Tree Cameras Dynamic ProgrammingTreeDepth-First SearchBinary TreeDP on Trees | Hard | 100% | 48.0% | ||
| #509 | Fibonacci Number MathDynamic ProgrammingRecursionMemoization | Easy | 100% | 74.3% | ||
| #64 | Minimum Path Sum ArrayDynamic ProgrammingMatrix | Medium | 100% | 68.5% | ||
| #1048 | Longest String Chain ArrayHash TableTwo PointersStringDynamic ProgrammingSorting | Medium | 100% | 63.3% | ||
| #392 | Is Subsequence Two PointersStringDynamic Programming | Easy | 88% | 49.2% | ||
| #85 | Maximal Rectangle ArrayDynamic ProgrammingStackMatrixMonotonic Stack | Hard | 64% | 0.6% | ||
| #518 | Coin Change II ArrayDynamic ProgrammingKnapsack ProblemComplete Knapsack | Medium | 100% | 59.6% | ||
| #907 | Sum of Subarray Minimums ArrayDynamic ProgrammingStackMonotonic Stack | Medium | 88% | 38.8% | ||
| #115 | Hard | 82% | 52.2% | |||
| #123 | Best Time to Buy and Sell Stock III ArrayDynamic Programming | Hard | 82% | 54.2% | ||
| #516 | Longest Palindromic Subsequence StringDynamic Programming | Medium | 68% | 65.7% | ||
| #542 | 01 Matrix ArrayDynamic ProgrammingBreadth-First SearchMatrix | Medium | 100% | 54.4% | ||
| #131 | Palindrome Partitioning StringDynamic ProgrammingBacktracking | Medium | 100% | 0.7% | ||
| #403 | Frog Jump ArrayDynamic Programming | Hard | 88% | 0.5% | ||
| #188 | Best Time to Buy and Sell Stock IV ArrayDynamic Programming | Hard | 100% | 50.7% | ||
| #1326 | Minimum Number of Taps to Open to Water a Garden ArrayDynamic ProgrammingGreedy | Hard | 100% | 51.0% | ||
| #465 | Optimal Account Balancing ArrayDynamic ProgrammingBacktrackingBit ManipulationBitmask | Hard | 100% | 50.5% | ||
| #279 | Perfect Squares MathDynamic ProgrammingBreadth-First SearchKnapsack ProblemComplete Knapsack | Medium | 100% | 56.7% | ||
| #740 | Delete and Earn ArrayHash TableDynamic Programming | Medium | 100% | 57.4% | ||
| #337 | House Robber III Dynamic ProgrammingTreeDepth-First SearchBinary TreeDP on Trees | Medium | 88% | 56.1% | ||
| #546 | Remove Boxes ArrayDynamic ProgrammingMemoization | Hard | 100% | 49.6% | ||
| #983 | Minimum Cost For Tickets ArrayDynamic Programming | Medium | 100% | 67.5% | ||
| #918 | Maximum Sum Circular Subarray ArrayDivide and ConquerDynamic ProgrammingQueueMonotonic Queue | Medium | 90% | 50.7% | ||
| #97 | Interleaving String StringDynamic Programming | Medium | 78% | 44.3% | ||
| #494 | Target Sum ArrayDynamic ProgrammingBacktrackingKnapsack Problem0-1 Knapsack | Medium | 75% | 52.5% | ||
| #2484 | Count Palindromic Subsequences StringDynamic Programming | Hard | 100% | 41.5% | ||
| #741 | Cherry Pickup ArrayDynamic ProgrammingMatrix | Hard | 100% | 39.9% | ||
| #96 | Unique Binary Search Trees MathDynamic ProgrammingTreeBinary Search TreeBinary Tree | Medium | 88% | 63.9% | ||
| #2858 | Minimum Edge Reversals So Every Node Is Reachable Dynamic ProgrammingDepth-First SearchBreadth-First SearchGraph Theory | Hard | 77% | 60.0% | ||
| #63 | Unique Paths II ArrayDynamic ProgrammingMatrix | Medium | 75% | 0.4% | ||
| #338 | Counting Bits Dynamic ProgrammingBit Manipulation | Easy | 57% | 80.7% | ||
| #120 | Triangle ArrayDynamic Programming | Medium | 55% | 59.9% | ||
| #1639 | Number of Ways to Form a Target String Given a Dictionary ArrayStringDynamic Programming | Hard | 100% | 56.4% | ||
| #161 | One Edit Distance Two PointersString | Medium | 100% | 34.6% | ||
| #2050 | Parallel Courses III ArrayDynamic ProgrammingGraph TheoryTopological SortDirected Acyclic Graph | Hard | 100% | 66.8% | ||
| #845 | Longest Mountain in Array ArrayTwo PointersDynamic ProgrammingEnumeration | Medium | 100% | 42.3% | ||
| #132 | Palindrome Partitioning II StringDynamic Programming | Hard | 100% | 37.4% | ||
| #174 | Dungeon Game ArrayDynamic ProgrammingMatrix | Hard | 80% | 0.4% | ||
| #309 | Best Time to Buy and Sell Stock with Cooldown ArrayDynamic Programming | Medium | 80% | 62.4% | ||
| #2035 | Partition Array Into Two Arrays to Minimize Sum Difference ArrayTwo PointersBinary SearchDynamic ProgrammingBit ManipulationMeet in the MiddleSortingOrdered SetBitmask | Hard | 100% | 23.9% | ||
| #792 | Number of Matching Subsequences ArrayHash TableStringBinary SearchDynamic ProgrammingTrieSorting | Medium | 100% | 50.6% | ||
| #473 | Matchsticks to Square ArrayDynamic ProgrammingBacktrackingBit ManipulationBitmask | Medium | 100% | 42.1% | ||
| #746 | Min Cost Climbing Stairs ArrayDynamic Programming | Easy | 70% | 68.5% | ||
| #264 | Ugly Number II Hash TableMathDynamic ProgrammingHeap (Priority Queue) | Medium | 63% | 49.7% | ||
| #714 | Best Time to Buy and Sell Stock with Transaction Fee ArrayDynamic ProgrammingGreedy | Medium | 55% | 72.3% | ||
| #486 | Predict the Winner ArrayMathDynamic ProgrammingRecursionMinimaxGame TheoryZero-Sum Game | Medium | 54% | 0.6% | ||
| #256 | Paint House ArrayDynamic Programming | Medium | 100% | 64.5% | ||
| #1493 | Longest Subarray of 1's After Deleting One Element ArrayDynamic ProgrammingSliding Window | Medium | 100% | 71.3% | ||
| #2008 | Maximum Earnings From Taxi ArrayHash TableBinary SearchDynamic ProgrammingSorting | Medium | 100% | 46.6% | ||
| #1547 | Minimum Cost to Cut a Stick ArrayDynamic ProgrammingSorting | Hard | 100% | 63.3% | ||
| #1335 | Minimum Difficulty of a Job Schedule ArrayDynamic Programming | Hard | 100% | 0.6% | ||
| #2571 | Minimum Operations to Reduce an Integer to 0 Dynamic ProgrammingGreedyBit Manipulation | Medium | 100% | 62.8% | ||
| #1411 | Number of Ways to Paint N × 3 Grid Dynamic ProgrammingGraph Coloring | Hard | 89% | 80.5% | ||
| #377 | Combination Sum IV ArrayDynamic Programming | Medium | 88% | 55.2% | ||
| #871 | Minimum Number of Refueling Stops ArrayDynamic ProgrammingGreedyHeap (Priority Queue) | Hard | 79% | 41.6% | ||
| #698 | Partition to K Equal Sum Subsets ArrayDynamic ProgrammingBacktrackingBit ManipulationMemoizationBitmask | Medium | 75% | 38.8% | ||
| #2466 | Count Ways To Build Good Strings Dynamic Programming | Medium | 75% | 58.9% | ||
| #931 | Minimum Falling Path Sum ArrayDynamic ProgrammingMatrix | Medium | 67% | 60.9% | ||
| #1526 | Minimum Number of Increments on Subarrays to Form a Target Array ArrayDynamic ProgrammingStackGreedyMonotonic Stack | Hard | 67% | 78.2% | ||
| #1162 | As Far from Land as Possible ArrayDynamic ProgrammingBreadth-First SearchMatrix | Medium | 100% | 52.4% | ||
| #1653 | Minimum Deletions to Make String Balanced StringDynamic ProgrammingStack | Medium | 100% | 68.2% | ||
| #413 | Arithmetic Slices ArrayDynamic ProgrammingSliding Window | Medium | 100% | 64.8% | ||
| #2560 | House Robber IV ArrayBinary SearchDynamic ProgrammingGreedy | Medium | 100% | 64.6% | ||
| #1137 | N-th Tribonacci Number MathDynamic ProgrammingMemoization | Easy | 100% | 63.1% | ||
| #873 | Length of Longest Fibonacci Subsequence ArrayHash TableDynamic Programming | Medium | 100% | 57.5% | ||
| #1696 | Jump Game VI ArrayDynamic ProgrammingQueueHeap (Priority Queue)Monotonic Queue | Medium | 100% | 46.5% | ||
| #1824 | Minimum Sideway Jumps ArrayDynamic ProgrammingGreedy | Medium | 100% | 51.8% | ||
| #488 | Zuma Game StringDynamic ProgrammingStackBreadth-First SearchMemoization | Hard | 100% | 29.5% | ||
| #2850 | Minimum Moves to Spread Stones Over Grid ArrayDynamic ProgrammingBacktrackingBit ManipulationMatrixBitmask | Medium | 100% | 45.8% | ||
| #3186 | Maximum Total Damage With Spell Casting ArrayHash TableTwo PointersBinary SearchDynamic ProgrammingSortingCounting | Medium | 88% | 45.1% | ||
| #718 | Maximum Length of Repeated Subarray ArrayBinary SearchDynamic ProgrammingSliding WindowRolling HashHash Function | Medium | 88% | 51.5% | ||
| #834 | Sum of Distances in Tree Dynamic ProgrammingTreeDepth-First SearchGraph TheoryDP on Trees | Hard | 85% | 65.7% | ||
| #773 | Sliding Puzzle ArrayDynamic ProgrammingBacktrackingBreadth-First SearchMemoizationMatrixHeuristic SearchBidirectional SearchA* Search | Hard | 76% | 74.5% | ||
| #1262 | Greatest Sum Divisible by Three ArrayDynamic ProgrammingGreedySorting | Medium | 75% | 57.0% | ||
| #1025 | Divisor Game MathDynamic ProgrammingBrainteaserGame TheoryImpartial Game | Easy | 75% | 72.1% | ||
| #898 | Bitwise ORs of Subarrays ArrayDynamic ProgrammingBit Manipulation | Medium | 75% | 56.9% | ||
| #526 | Beautiful Arrangement ArrayDynamic ProgrammingBacktrackingBit ManipulationBitmask | Medium | 66% | 64.9% | ||
| #1928 | Minimum Cost to Reach Destination in Time ArrayDynamic ProgrammingGraph TheoryDijkstra's Algorithm | Hard | 65% | 41.9% | ||
| #1463 | Cherry Pickup II ArrayDynamic ProgrammingMatrix | Hard | 65% | 72.5% | ||
| #980 | Unique Paths III ArrayBacktrackingBit ManipulationMatrixHamiltonian Path | Hard | 52% | 82.9% | ||
| #1931 | Painting a Grid With Three Different Colors Dynamic ProgrammingGraph Coloring | Hard | 51% | 77.0% | ||
| #343 | Integer Break MathDynamic Programming | Medium | 50% | 62.5% | ||
| #1312 | Minimum Insertion Steps to Make a String Palindrome StringDynamic Programming | Hard | 41% | 74.2% | ||
| #2163 | Minimum Difference in Sums After Removal of Elements ArrayDynamic ProgrammingHeap (Priority Queue) | Hard | 40% | 69.6% | ||
| #650 | 2 Keys Keyboard MathDynamic Programming | Medium | 39% | 59.4% | ||
| #1524 | Number of Sub-arrays With Odd Sum ArrayMathDynamic ProgrammingPrefix Sum | Medium | 100% | 55.7% | ||
| #1027 | Longest Arithmetic Subsequence ArrayHash TableBinary SearchDynamic Programming | Medium | 100% | 50.1% | ||
| #87 | Scramble String StringDynamic Programming | Hard | 100% | 45.0% | ||
| #1014 | Best Sightseeing Pair ArrayDynamic Programming | Medium | 100% | 62.7% | ||
| #2616 | Minimize the Maximum Difference of Pairs ArrayBinary SearchDynamic ProgrammingGreedySorting | Medium | 100% | 51.0% | ||
| #688 | Knight Probability in Chessboard Dynamic Programming | Medium | 100% | 57.2% | ||
| #2327 | Number of People Aware of a Secret Dynamic ProgrammingQueueSimulation | Medium | 100% | 60.6% | ||
| #638 | Shopping Offers ArrayDynamic ProgrammingBacktrackingBit ManipulationMemoizationBitmaskKnapsack ProblemComplete Knapsack | Medium | 94% | 52.6% | ||
| #935 | Knight Dialer Dynamic Programming | Medium | 90% | 62.0% | ||
| #241 | Different Ways to Add Parentheses MathStringDynamic ProgrammingRecursionMemoizationBracket Sequences | Medium | 89% | 73.4% | ||
| #1668 | Maximum Repeating Substring StringDynamic ProgrammingString Matching | Easy | 89% | 41.9% | ||
| #3336 | Find the Number of Subsequences With Equal GCD ArrayMathDynamic ProgrammingNumber TheoryEuclidean AlgorithmGreatest Common Divisor | Hard | 77% | 0.7% | ||
| #788 | Rotated Digits MathDynamic Programming | Medium | 71% | 64.1% | ||
| #3640 | Trionic Array II ArrayDynamic Programming | Hard | 65% | 47.3% | ||
| #838 | Push Dominoes Two PointersStringDynamic Programming | Medium | 64% | 63.0% | ||
| #689 | Maximum Sum of 3 Non-Overlapping Subarrays ArrayDynamic ProgrammingSliding WindowPrefix Sum | Hard | 63% | 59.9% | ||
| #805 | Split Array With Same Average ArrayHash TableMathDynamic ProgrammingBit ManipulationMeet in the MiddleBitmask | Hard | 63% | 27.2% | ||
| #233 | Number of Digit One MathDynamic ProgrammingRecursion | Hard | 50% | 39.2% | ||
| #1671 | Minimum Number of Removals to Make Mountain Array ArrayBinary SearchDynamic ProgrammingGreedy | Hard | 41% | 54.8% | ||
| #396 | Rotate Function ArrayMathDynamic Programming | Medium | 41% | 54.2% | ||
| #368 | Largest Divisible Subset ArrayMathDynamic ProgrammingSorting | Medium | 40% | 49.9% | ||
| #1043 | Partition Array for Maximum Sum ArrayDynamic Programming | Medium | 38% | 77.5% | ||
| #1277 | Count Square Submatrices with All Ones ArrayDynamic ProgrammingMatrix | Medium | 38% | 80.8% | ||
| #790 | Domino and Tromino Tiling Dynamic Programming | Medium | 38% | 51.3% | ||
| #799 | Champagne Tower Dynamic Programming | Medium | 38% | 64.1% | ||
| #1749 | Maximum Absolute Sum of Any Subarray ArrayDynamic Programming | Medium | 31% | 70.9% | ||
| #1049 | Last Stone Weight II ArrayDynamic ProgrammingKnapsack Problem0-1 Knapsack | Medium | 31% | 60.2% | ||
| #119 | Pascal's Triangle II ArrayDynamic Programming | Easy | 28% | 67.7% | ||
| #673 | Number of Longest Increasing Subsequence ArrayDynamic ProgrammingBinary Indexed TreeSegment TreeLongest Increasing Subsequence | Medium | 25% | 52.3% | ||
| #1140 | Stone Game II ArrayMathDynamic ProgrammingMinimaxPrefix SumGame TheoryZero-Sum Game | Medium | 25% | 72.8% | ||
| #3202 | Find the Maximum Length of Valid Subsequence II ArrayDynamic Programming | Medium | 25% | 57.1% | ||
| #3459 | Length of Longest V-Shaped Diagonal Segment ArrayDynamic ProgrammingMemoizationMatrix | Hard | 100% | 56.2% | ||
| #2999 | Count the Number of Powerful Integers MathStringDynamic Programming | Hard | 100% | 46.3% | ||
| #629 | K Inverse Pairs Array Dynamic Programming | Hard | 100% | 49.0% | ||
| #1186 | Maximum Subarray Sum with One Deletion ArrayDynamic Programming | Medium | 100% | 0.5% | ||
| #397 | Integer Replacement Dynamic ProgrammingGreedyBit ManipulationMemoization | Medium | 100% | 0.4% | ||
| #2439 | Minimize Maximum of Array ArrayBinary SearchDynamic ProgrammingGreedyPrefix Sum | Medium | 100% | 46.6% | ||
| #446 | Arithmetic Slices II - Subsequence ArrayDynamic Programming | Hard | 100% | 55.1% | ||
| #3418 | Maximum Amount of Money Robot Can Earn ArrayDynamic ProgrammingMatrix | Medium | 100% | 47.8% | ||
| #600 | Non-negative Integers without Consecutive Ones Dynamic Programming | Hard | 100% | 42.9% | ||
| #1611 | Minimum One Bit Operations to Make Integers Zero MathDynamic ProgrammingBit ManipulationRecursionMemoization | Hard | 91% | 78.3% | ||
| #727 | Minimum Window Subsequence StringDynamic ProgrammingSliding Window | Hard | 89% | 43.8% | ||
| #2472 | Maximum Number of Non-overlapping Palindrome Substrings Two PointersStringDynamic ProgrammingGreedy | Hard | 88% | 44.9% | ||
| #1155 | Number of Dice Rolls With Target Sum Dynamic Programming | Medium | 88% | 62.5% | ||
| #2742 | Painting the Walls ArrayDynamic Programming | Hard | 88% | 49.2% | ||
| #2380 | Time Needed to Rearrange a Binary String StringDynamic ProgrammingSimulation | Medium | 80% | 53.4% | ||
| #2463 | Minimum Total Distance Traveled ArrayDynamic ProgrammingSorting | Hard | 75% | 63.1% | ||
| #926 | Flip String to Monotone Increasing StringDynamic Programming | Medium | 65% | 61.9% | ||
| #818 | Race Car Dynamic ProgrammingHeuristic SearchA* Search | Hard | 63% | 44.9% | ||
| #1888 | Minimum Number of Flips to Make the Binary String Alternating StringDynamic ProgrammingSliding Window | Medium | 63% | 53.6% | ||
| #3193 | Count the Number of Inversions ArrayDynamic Programming | Hard | 63% | 31.7% | ||
| #2127 | Maximum Employees to Be Invited to a Meeting ArrayDynamic ProgrammingDepth-First SearchGraph TheoryTopological SortKosaraju's AlgorithmTarjan's SCC Algorithm | Hard | 60% | 61.8% | ||
| #1857 | Largest Color Value in a Directed Graph Hash TableStringDynamic ProgrammingGraph TheoryTopological SortMemoizationCountingDirected Acyclic Graph | Hard | 56% | 57.2% | ||
| #2291 | Maximum Profit From Trading Stocks ArrayDynamic Programming | Medium | 55% | 48.3% | ||
| #464 | Can I Win MathDynamic ProgrammingBit ManipulationMemoizationGame TheoryBitmask | Medium | 54% | 31.5% | ||
| #1723 | Find Minimum Time to Finish All Jobs ArrayDynamic ProgrammingBacktrackingBit ManipulationBitmask | Hard | 53% | 46.0% | ||
| #1039 | Minimum Score Triangulation of Polygon ArrayDynamic ProgrammingTriangulationPolygons | Medium | 50% | 67.5% | ||
| #313 | Super Ugly Number ArrayMathDynamic Programming | Medium | 50% | 46.3% | ||
| #887 | Super Egg Drop MathBinary SearchDynamic Programming | Hard | 50% | 30.6% | ||
| #1092 | Shortest Common Supersequence StringDynamic ProgrammingLongest Common Subsequence | Hard | 41% | 62.1% | ||
| #3366 | Minimum Array Sum ArrayDynamic Programming | Medium | 39% | 31.8% | ||
| #1373 | Maximum Sum BST in Binary Tree Dynamic ProgrammingTreeDepth-First SearchBinary Search TreeBinary TreeDP on Trees | Hard | 38% | 48.1% | ||
| #894 | All Possible Full Binary Trees Dynamic ProgrammingTreeRecursionMemoizationBinary Tree | Medium | 38% | 82.8% | ||
| #877 | Stone Game ArrayMathDynamic ProgrammingMinimaxGame TheoryZero-Sum Game | Medium | 30% | 73.5% | ||
| #837 | New 21 Game MathDynamic ProgrammingSliding WindowProbability and Statistics | Medium | 30% | 51.9% | ||
| #95 | Unique Binary Search Trees II Dynamic ProgrammingBacktrackingTreeBinary Search TreeBinary Tree | Medium | 28% | 62.8% | ||
| #357 | Count Numbers with Unique Digits MathDynamic ProgrammingBacktracking | Medium | 28% | 55.9% | ||
| #1458 | Max Dot Product of Two Subsequences ArrayDynamic ProgrammingLongest Common Subsequence | Hard | 27% | 69.4% | ||
| #474 | Ones and Zeroes ArrayStringDynamic ProgrammingKnapsack Problem0-1 Knapsack | Medium | 26% | 53.5% | ||
| #801 | Minimum Swaps To Make Sequences Increasing ArrayDynamic Programming | Hard | 25% | 41.8% | ||
| #1976 | Number of Ways to Arrive at Destination Dynamic ProgrammingGraph TheoryTopological SortShortest PathDijkstra's Algorithm | Medium | 25% | 37.6% | ||
| #2140 | Solving Questions With Brainpower ArrayDynamic Programming | Medium | 25% | 60.2% | ||
| #2787 | Ways to Express an Integer as Sum of Powers Dynamic Programming | Medium | 25% | 49.8% | ||
| #3333 | Find the Original Typed String II StringDynamic ProgrammingPrefix Sum | Hard | 18% | 45.5% | ||
| #3699 | Number of ZigZag Arrays I Dynamic ProgrammingPrefix Sum | Hard | 18% | 50.5% | ||
| #2320 | Count Number of Ways to Place Houses Dynamic Programming | Medium | 100% | 44.1% | ||
| #3068 | Find the Maximum Sum of Node Values ArrayDynamic ProgrammingGreedyBit ManipulationTreeSorting | Hard | 100% | 69.4% | ||
| #1911 | Maximum Alternating Subsequence Sum ArrayDynamic Programming | Medium | 100% | 59.2% | ||
| #712 | Minimum ASCII Delete Sum for Two Strings StringDynamic ProgrammingLongest Common Subsequence | Medium | 100% | 71.1% | ||
| #3225 | Maximum Score From Grid Operations ArrayDynamic ProgrammingMatrixPrefix Sum | Hard | 100% | 0.6% | ||
| #3144 | Minimum Substring Partition of Equal Character Frequency Hash TableStringDynamic ProgrammingCounting | Medium | 100% | 40.5% | ||
| #1301 | Number of Paths with Max Score ArrayDynamic ProgrammingMatrix | Hard | 100% | 64.3% | ||
| #691 | Stickers to Spell Word ArrayHash TableStringDynamic ProgrammingBacktrackingBit ManipulationMemoizationBitmask | Hard | 89% | 51.0% | ||
| #1130 | Minimum Cost Tree From Leaf Values ArrayDynamic ProgrammingStackGreedyMonotonic StackCartesian Tree | Medium | 88% | 67.9% | ||
| #3469 | Find Minimum Cost to Remove Array Elements ArrayDynamic Programming | Medium | 88% | 22.0% | ||
| #1024 | Video Stitching ArrayDynamic ProgrammingGreedy | Medium | 88% | 52.8% | ||
| #1691 | Maximum Height by Stacking Cuboids ArrayDynamic ProgrammingSorting | Hard | 88% | 62.3% | ||
| #1139 | Largest 1-Bordered Square ArrayDynamic ProgrammingMatrix | Medium | 88% | 52.3% | ||
| #1062 | Longest Repeating Substring StringBinary SearchDynamic ProgrammingRolling HashSuffix ArrayHash FunctionSuffix AutomatonSuffix Tree | Medium | 80% | 63.5% | ||
| #2338 | Count the Number of Ideal Arrays MathDynamic ProgrammingCombinatoricsNumber TheoryPrime FactorizationFermat's Little Theorem | Hard | 75% | 56.9% | ||
| #2597 | The Number of Beautiful Subsets ArrayHash TableMathDynamic ProgrammingBacktrackingSortingCombinatorics | Medium | 75% | 50.9% | ||
| #1402 | Reducing Dishes ArrayDynamic ProgrammingGreedySorting | Hard | 69% | 76.8% | ||
| #3661 | Maximum Walls Destroyed by Robots ArrayBinary SearchDynamic ProgrammingSorting | Hard | 65% | 48.0% | ||
| #2977 | Minimum Cost to Convert String II ArrayStringDynamic ProgrammingGraph TheoryTrieShortest Path | Hard | 63% | 59.6% | ||
| #3651 | Minimum Cost Path with Teleportations ArrayDynamic ProgrammingMatrix | Hard | 56% | 45.4% | ||
| #3335 | Total Characters in String After Transformations I Hash TableMathStringDynamic ProgrammingCounting | Medium | 54% | 45.6% | ||
| #1035 | Uncrossed Lines ArrayDynamic ProgrammingLongest Common Subsequence | Medium | 54% | 65.4% | ||
| #730 | Count Different Palindromic Subsequences StringDynamic Programming | Hard | 50% | 48.1% | ||
| #1000 | Minimum Cost to Merge Stones ArrayDynamic ProgrammingPrefix Sum | Hard | 50% | 46.4% | ||
| #902 | Numbers At Most N Given Digit Set ArrayMathStringBinary SearchDynamic Programming | Hard | 50% | 45.6% | ||
| #3434 | Maximum Frequency After Subarray Operation ArrayHash TableDynamic ProgrammingGreedyEnumerationPrefix Sum | Medium | 50% | 31.4% | ||
| #583 | Delete Operation for Two Strings StringDynamic ProgrammingLongest Common Subsequence | Medium | 47% | 65.9% | ||
| #1478 | Allocate Mailboxes ArrayMathDynamic ProgrammingSorting | Hard | 44% | 56.8% | ||
| #847 | Shortest Path Visiting All Nodes Dynamic ProgrammingBit ManipulationBreadth-First SearchGraph TheoryBitmask | Hard | 38% | 66.1% | ||
| #276 | Paint Fence Dynamic Programming | Medium | 38% | 48.5% | ||
| #1395 | Count Number of Teams ArrayDynamic ProgrammingBinary Indexed TreeSegment Tree | Medium | 38% | 70.2% | ||
| #1510 | Stone Game IV MathDynamic ProgrammingMinimaxGame TheoryNim GameSprague–Grundy TheoremZero-Sum Game | Hard | 38% | 0.7% | ||
| #1406 | Stone Game III ArrayMathDynamic ProgrammingMinimaxGame TheoryZero-Sum Game | Hard | 30% | 63.4% | ||
| #2435 | Paths in Matrix Whose Sum Is Divisible by K ArrayDynamic ProgrammingMatrix | Hard | 30% | 58.7% | ||
| #1483 | Kth Ancestor of a Tree Node Binary SearchDynamic ProgrammingBit ManipulationTreeDepth-First SearchBreadth-First SearchDesignBinary Lifting | Hard | 27% | 38.9% | ||
| #487 | Max Consecutive Ones II ArrayDynamic ProgrammingSliding Window | Medium | 27% | 52.1% | ||
| #1504 | Count Submatrices With All Ones ArrayDynamic ProgrammingStackMatrixMonotonic Stack | Medium | 26% | 71.0% | ||
| #1871 | Jump Game VII StringDynamic ProgrammingSliding WindowPrefix Sum | Medium | 25% | 35.6% | ||
| #2501 | Longest Square Streak in an Array ArrayHash TableBinary SearchDynamic ProgrammingSorting | Medium | 25% | 53.1% | ||
| #1900 | The Earliest and Latest Rounds Where Players Compete Dynamic ProgrammingMemoization | Hard | 25% | 72.2% | ||
| #3201 | Find the Maximum Length of Valid Subsequence I ArrayDynamic Programming | Medium | 25% | 54.9% | ||
| #1289 | Minimum Falling Path Sum II ArrayDynamic ProgrammingMatrix | Hard | 25% | 63.0% | ||
| #1594 | Maximum Non Negative Product in a Matrix ArrayDynamic ProgrammingMatrix | Medium | 25% | 51.6% | ||
| #3302 | Find the Lexicographically Smallest Valid Sequence Two PointersStringDynamic ProgrammingGreedy | Medium | 21% | 0.6% | ||
| #3753 | Total Waviness of Numbers in Range II MathDynamic Programming | Hard | 18% | 56.7% | ||
| #3129 | Find All Possible Stable Binary Arrays I Dynamic ProgrammingPrefix Sum | Medium | 15% | 53.6% | ||
| #3534 | Path Existence Queries in a Graph II ArrayTwo PointersBinary SearchDynamic ProgrammingGreedyBit ManipulationGraph TheorySorting | Hard | 15% | 64.6% | ||
| #3578 | Count Partitions With Max-Min Difference at Most K ArrayDynamic ProgrammingQueueSliding WindowPrefix SumMonotonic Queue | Medium | 13% | 58.5% | ||
| #2086 | Minimum Number of Food Buckets to Feed the Hamsters StringDynamic ProgrammingGreedy | Medium | 100% | 48.5% | ||
| #3367 | Maximize Sum of Weights after Edge Removals Dynamic ProgrammingTreeDepth-First SearchSorting | Hard | 100% | 0.3% | ||
| #2617 | Minimum Number of Visited Cells in a Grid ArrayDynamic ProgrammingStackBreadth-First SearchUnion-FindHeap (Priority Queue)MatrixMonotonic Stack | Hard | 100% | 24.0% | ||
| #1434 | Number of Ways to Wear Different Hats to Each Other ArrayDynamic ProgrammingBit ManipulationBitmaskBipartite GraphMatching (Graph)Perfect Matching | Hard | 100% | 46.4% | ||
| #576 | Out of Boundary Paths Dynamic Programming | Medium | 100% | 48.5% | ||
| #1359 | Count All Valid Pickup and Delivery Options MathDynamic ProgrammingCombinatorics | Hard | 100% | 64.9% | ||
| #828 | Count Unique Characters of All Substrings of a Given String Hash TableStringDynamic Programming | Hard | 100% | 53.8% | ||
| #3429 | Paint House IV ArrayDynamic Programming | Medium | 100% | 45.6% | ||
| #2147 | Number of Ways to Divide a Long Corridor MathStringDynamic Programming | Hard | 100% | 54.6% | ||
| #2645 | Minimum Additions to Make Valid String StringDynamic ProgrammingStackGreedy | Medium | 100% | 51.2% | ||
| #1626 | Best Team With No Conflicts ArrayDynamic ProgrammingSortingLongest Increasing Subsequence | Medium | 100% | 0.5% | ||
| #1349 | Maximum Students Taking Exam ArrayDynamic ProgrammingBit ManipulationMatrixBitmaskMaximum FlowMaximum MatchingBipartite GraphEdmonds–Karp AlgorithmMPM AlgorithmPush-Relabel AlgorithmMinimum CutMatching (Graph)Flow NetworkDinic's Algorithm | Hard | 92% | 54.0% | ||
| #1755 | Closest Subsequence Sum ArrayTwo PointersDynamic ProgrammingBit ManipulationMeet in the MiddleSortingBitmask | Hard | 90% | 44.0% | ||
| #1031 | Maximum Sum of Two Non-Overlapping Subarrays ArrayDynamic ProgrammingSliding Window | Medium | 82% | 61.0% | ||
| #2851 | String Transformation MathStringDynamic ProgrammingString Matching | Hard | 75% | 27.5% | ||
| #1473 | Paint House III ArrayDynamic Programming | Hard | 75% | 61.2% | ||
| #2915 | Length of the Longest Subsequence That Sums to Target ArrayDynamic ProgrammingKnapsack Problem0-1 Knapsack | Medium | 75% | 40.1% | ||
| #2222 | Number of Ways to Select Buildings StringDynamic ProgrammingPrefix Sum | Medium | 67% | 51.0% | ||
| #764 | Largest Plus Sign ArrayDynamic Programming | Medium | 66% | 49.3% | ||
| #975 | Odd Even Jump ArrayDynamic ProgrammingStackSortingMonotonic StackOrdered Set | Hard | 65% | 41.3% | ||
| #375 | Guess Number Higher or Lower II MathDynamic ProgrammingMinimaxGame Theory | Medium | 64% | 53.0% | ||
| #1216 | Valid Palindrome III StringDynamic Programming | Hard | 63% | 49.2% | ||
| #568 | Maximum Vacation Days ArrayDynamic ProgrammingMatrix | Hard | 63% | 46.8% | ||
| #552 | Student Attendance Record II Dynamic Programming | Hard | 54% | 56.7% | ||
| #514 | Freedom Trail StringDynamic ProgrammingDepth-First SearchBreadth-First Search | Hard | 54% | 59.4% | ||
| #472 | Concatenated Words ArrayStringDynamic ProgrammingDepth-First SearchTrieSorting | Hard | 53% | 49.9% | ||
| #639 | Decode Ways II StringDynamic Programming | Hard | 50% | 32.0% | ||
| #2266 | Count Number of Texts Hash TableMathStringDynamic Programming | Medium | 50% | 50.4% | ||
| #1494 | Parallel Courses II Dynamic ProgrammingBit ManipulationGraph TheoryBitmaskDirected Acyclic Graph | Hard | 50% | 31.1% | ||
| #808 | Soup Servings MathDynamic ProgrammingProbability and Statistics | Medium | 38% | 59.6% | ||
| #1578 | Minimum Time to Make Rope Colorful ArrayStringDynamic ProgrammingGreedy | Medium | 38% | 65.2% | ||
| #646 | Maximum Length of Pair Chain ArrayDynamic ProgrammingGreedySortingLongest Increasing Subsequence | Medium | 36% | 0.6% | ||
| #3229 | Minimum Operations to Make Array Equal to Target ArrayDynamic ProgrammingStackGreedyMonotonic Stack | Hard | 29% | 41.8% | ||
| #1255 | Maximum Score Words Formed by Letters ArrayHash TableStringDynamic ProgrammingBacktrackingBit ManipulationCountingBitmask | Hard | 25% | 81.5% | ||
| #2110 | Number of Smooth Descent Periods of a Stock ArrayMathTwo PointersDynamic ProgrammingSliding Window | Medium | 25% | 67.7% | ||
| #2311 | Longest Binary Subsequence Less Than or Equal to K StringDynamic ProgrammingGreedyMemoization | Medium | 25% | 52.8% | ||
| #3573 | Best Time to Buy and Sell Stock V ArrayDynamic Programming | Medium | 18% | 60.6% | ||
| #2707 | Extra Characters in a String ArrayHash TableStringDynamic ProgrammingTrie | Medium | 15% | 57.4% | ||
| #3559 | Number of Ways to Assign Edge Weights II ArrayMathDynamic ProgrammingBit ManipulationTreeDepth-First Search | Hard | 13% | 72.5% | ||
| #3700 | Number of ZigZag Arrays II MathDynamic Programming | Hard | 13% | 67.6% | ||
| #3428 | Maximum and Minimum Sums of at Most Size K Subsequences ArrayMathDynamic ProgrammingSortingCombinatorics | Medium | 13% | 22.0% | ||
| #978 | Longest Turbulent Subarray ArrayDynamic ProgrammingSliding Window | Medium | 13% | 49.3% | ||
| #1690 | Stone Game VII ArrayMathDynamic ProgrammingMinimaxGame TheoryZero-Sum Game | Medium | 100% | 58.8% | ||
| #1420 | Build Array Where You Can Find The Maximum Exactly K Comparisons Dynamic ProgrammingPrefix Sum | Hard | 100% | 65.5% | ||
| #1397 | Find All Good Strings StringDynamic ProgrammingString Matching | Hard | 100% | 45.7% | ||
| #2998 | Minimum Number of Operations to Make X and Y Equal Dynamic ProgrammingBreadth-First SearchMemoization | Medium | 100% | 48.9% | ||
| #2060 | Check if an Original String Exists Given Two Encoded Strings StringDynamic Programming | Hard | 100% | 43.5% | ||
| #2901 | Longest Unequal Adjacent Groups Subsequence II ArrayStringDynamic Programming | Medium | 100% | 51.5% | ||
| #2370 | Longest Ideal Subsequence Hash TableStringDynamic Programming | Medium | 100% | 46.6% | ||
| #1567 | Maximum Length of Subarray With Positive Product ArrayDynamic ProgrammingGreedy | Medium | 100% | 44.7% | ||
| #1227 | Airplane Seat Assignment Probability MathDynamic ProgrammingBrainteaserProbability and Statistics | Medium | 100% | 67.5% | ||
| #2263 | Make Array Non-decreasing or Non-increasing ArrayDynamic ProgrammingGreedyHeap (Priority Queue) | Hard | 100% | 65.5% | ||
| #920 | Number of Music Playlists MathDynamic ProgrammingCombinatorics | Hard | 100% | 60.1% | ||
| #2745 | Construct the Longest New String MathDynamic ProgrammingGreedyBrainteaser | Medium | 100% | 55.0% | ||
| #1425 | Constrained Subsequence Sum ArrayDynamic ProgrammingQueueSliding WindowHeap (Priority Queue)Monotonic Queue | Hard | 100% | 56.5% | ||
| #1223 | Dice Roll Simulation ArrayDynamic Programming | Hard | 100% | 51.0% | ||
| #467 | Unique Substrings in Wraparound String StringDynamic Programming | Medium | 100% | 43.4% | ||
| #1799 | Maximize Score After N Operations ArrayMathDynamic ProgrammingBacktrackingBit ManipulationNumber TheoryBitmask | Hard | 97% | 57.9% | ||
| #3414 | Maximum Score of Non-overlapping Intervals ArrayBinary SearchDynamic ProgrammingSorting | Hard | 95% | 31.8% | ||
| #2552 | Count Increasing Quadruplets ArrayDynamic ProgrammingBinary Indexed TreeEnumerationPrefix Sum | Hard | 92% | 34.5% | ||
| #2518 | Number of Great Partitions ArrayDynamic Programming | Hard | 90% | 33.7% | ||
| #2835 | Hard | 88% | 32.7% | |||
| #964 | Least Operators to Express Number MathDynamic ProgrammingMemoization | Hard | 88% | 0.5% | ||
| #3409 | Longest Subsequence With Decreasing Adjacent Difference ArrayDynamic Programming | Medium | 88% | 17.0% | ||
| #2328 | Number of Increasing Paths in a Grid ArrayDynamic ProgrammingDepth-First SearchBreadth-First SearchGraph TheoryTopological SortMemoizationMatrix | Hard | 88% | 57.3% | ||
| #3077 | Maximum Strength of K Disjoint Subarrays ArrayDynamic ProgrammingPrefix Sum | Hard | 75% | 28.1% | ||
| #3082 | Find the Sum of the Power of All Subsequences ArrayDynamic ProgrammingKnapsack Problem0-1 Knapsack | Hard | 75% | 38.7% | ||
| #3004 | Maximum Subtree of the Same Color ArrayDynamic ProgrammingTreeDepth-First Search | Medium | 75% | 58.8% | ||
| #3177 | Find the Maximum Length of a Good Subsequence II ArrayHash TableDynamic Programming | Hard | 75% | 0.3% | ||
| #3410 | Maximize Subarray Sum After Removing All Occurrences of One Element ArrayHash TableDivide and ConquerDynamic ProgrammingSegment TreePrefix Sum | Hard | 75% | 23.4% | ||
| #3165 | Maximum Sum of Subsequence With Non-adjacent Elements ArrayDivide and ConquerDynamic ProgrammingSegment Tree | Hard | 75% | 15.8% | ||
| #2184 | Number of Ways to Build Sturdy Brick Wall ArrayDynamic ProgrammingBit ManipulationBitmask | Medium | 69% | 49.5% | ||
| #3389 | Minimum Operations to Make Character Frequencies Equal Hash TableStringDynamic ProgrammingCountingEnumeration | Hard | 63% | 26.7% | ||
| #1986 | Minimum Number of Work Sessions to Finish the Tasks ArrayDynamic ProgrammingBacktrackingBit ManipulationBitmask | Medium | 63% | 35.1% | ||
| #1387 | Sort Integers by The Power Value Dynamic ProgrammingMemoizationSorting | Medium | 63% | 71.8% | ||
| #996 | Number of Squareful Arrays ArrayHash TableMathDynamic ProgrammingBacktrackingBit ManipulationBitmask | Hard | 51% | 51.6% | ||
| #3850 | Count Sequences to K ArrayMathDynamic ProgrammingMemoizationNumber Theory | Hard | 50% | 36.1% | ||
| #1125 | Smallest Sufficient Team ArrayDynamic ProgrammingBit ManipulationBitmask | Hard | 50% | 0.6% | ||
| #2063 | Vowels of All Substrings MathStringDynamic ProgrammingCombinatorics | Medium | 50% | 55.6% | ||
| #3130 | Find All Possible Stable Binary Arrays II Dynamic ProgrammingPrefix Sum | Hard | 42% | 58.8% | ||
| #2684 | Maximum Number of Moves in a Grid ArrayDynamic ProgrammingMatrix | Medium | 41% | 58.8% | ||
| #265 | Paint House II ArrayDynamic Programming | Hard | 39% | 57.2% | ||
| #2305 | Fair Distribution of Cookies ArrayDynamic ProgrammingBacktrackingBit ManipulationBitmask | Medium | 39% | 70.0% | ||
| #943 | Find the Shortest Superstring ArrayStringDynamic ProgrammingBit ManipulationBitmaskHamiltonian Path | Hard | 38% | 45.5% | ||
| #3539 | Find Sum of Array Product of Magical Sequences ArrayMathDynamic ProgrammingBit ManipulationCombinatoricsBitmask | Hard | 38% | 61.7% | ||
| #2719 | Count of Integers MathStringDynamic Programming | Hard | 38% | 39.1% | ||
| #651 | 4 Keys Keyboard MathDynamic Programming | Medium | 38% | 56.5% | ||
| #3316 | Find Maximum Removals From Source String ArrayHash TableTwo PointersStringDynamic Programming | Medium | 37% | 0.4% | ||
| #3592 | Inverse Coin Change ArrayDynamic Programming | Medium | 32% | 52.5% | ||
| #1218 | Longest Arithmetic Subsequence of Given Difference ArrayHash TableDynamic Programming | Medium | 29% | 54.3% | ||
| #333 | Largest BST Subtree Dynamic ProgrammingTreeDepth-First SearchBinary Search TreeBinary TreeDP on Trees | Medium | 27% | 45.9% | ||
| #2262 | Total Appeal of A String Hash TableStringDynamic Programming | Hard | 27% | 56.6% | ||
| #2407 | Longest Increasing Subsequence II ArrayDivide and ConquerDynamic ProgrammingBinary Indexed TreeSegment TreeQueueMonotonic Queue | Hard | 25% | 0.3% | ||
| #2801 | Count Stepping Numbers in Range StringDynamic Programming | Hard | 25% | 29.3% | ||
| #1947 | Maximum Compatibility Score Sum ArrayDynamic ProgrammingBacktrackingBit ManipulationBitmaskHungarian AlgorithmBipartite GraphSuccessive Shortest Path AlgorithmMatching (Graph)Perfect MatchingMinimum-Cost FlowFlow Network | Medium | 25% | 64.7% | ||
| #294 | Flip Game II MathDynamic ProgrammingBacktrackingMemoizationMinimaxGame TheorySprague–Grundy TheoremImpartial Game | Medium | 25% | 52.4% | ||
| #2100 | Find Good Days to Rob the Bank ArrayDynamic ProgrammingPrefix Sum | Medium | 25% | 51.9% | ||
| #1981 | Minimize the Difference Between Target and Chosen Elements ArrayDynamic ProgrammingMatrix | Medium | 25% | 37.1% | ||
| #3976 | Maximum Subarray Sum After Multiplier ArrayDynamic Programming | Medium | 25% | 25.7% | ||
| #879 | Profitable Schemes ArrayDynamic ProgrammingKnapsack Problem0-1 Knapsack | Hard | 25% | 48.5% | ||
| #1525 | Number of Good Ways to Split a String Hash TableStringDynamic ProgrammingBit ManipulationPrefix Sum | Medium | 25% | 68.5% | ||
| #813 | Largest Sum of Averages ArrayDynamic ProgrammingPrefix Sum | Medium | 25% | 55.2% | ||
| #960 | Delete Columns to Make Sorted III ArrayStringDynamic Programming | Hard | 25% | 72.7% | ||
| #1987 | Number of Unique Good Subsequences StringDynamic Programming | Hard | 25% | 52.5% | ||
| #1320 | Minimum Distance to Type a Word Using Two Fingers StringDynamic Programming | Hard | 25% | 72.3% | ||
| #361 | Bomb Enemy ArrayDynamic ProgrammingMatrix | Medium | 25% | 52.8% | ||
| #3751 | Total Waviness of Numbers in Range I MathDynamic ProgrammingEnumeration | Medium | 18% | 87.5% | ||
| #3593 | Minimum Increments to Equalize Leaf Paths ArrayDynamic ProgrammingTreeDepth-First Search | Medium | 16% | 41.4% | ||
| #3665 | Twisted Mirror Path Count ArrayDynamic ProgrammingMatrix | Medium | 16% | 47.5% | ||
| #3343 | Count Number of Balanced Permutations MathStringDynamic ProgrammingCombinatorics | Hard | 15% | 49.0% | ||
| #3742 | Maximum Path Score in a Grid ArrayDynamic ProgrammingMatrix | Medium | 15% | 53.7% | ||
| #3388 | Count Beautiful Splits in an Array ArrayDynamic Programming | Medium | 13% | 19.1% | ||
| #3363 | Find the Maximum Number of Fruits Collected ArrayDynamic ProgrammingMatrix | Hard | 13% | 65.0% | ||
| #1340 | Jump Game V ArrayDynamic ProgrammingSorting | Hard | 13% | 75.8% | ||
| #3503 | Longest Palindrome After Substring Concatenation I Two PointersStringDynamic ProgrammingEnumeration | Medium | 13% | 43.9% | ||
| #3562 | Maximum Profit from Trading Stocks with Discounts ArrayDynamic ProgrammingTreeDepth-First Search | Hard | 13% | 56.5% | ||
| #2770 | Maximum Number of Jumps to Reach the Last Index ArrayDynamic Programming | Medium | 13% | 51.0% | ||
| #3490 | Count Beautiful Numbers Dynamic Programming | Hard | 13% | 0.2% | ||
| #940 | Distinct Subsequences II StringDynamic Programming | Hard | 13% | 44.2% | ||
| #3620 | Network Recovery Pathways ArrayBinary SearchDynamic ProgrammingGraph TheoryTopological SortHeap (Priority Queue)Shortest Path | Hard | 13% | 50.9% | ||
| #1372 | Longest ZigZag Path in a Binary Tree Dynamic ProgrammingTreeDepth-First SearchBinary TreeDP on Trees | Medium | 13% | 67.3% | ||
| #3260 | Find the Largest Palindrome Divisible by K MathStringDynamic ProgrammingGreedyNumber Theory | Hard | 13% | 17.2% | ||
| #3743 | Maximize Cyclic Partition Score ArrayDynamic Programming | Hard | 13% | 14.1% | ||
| #823 | Binary Trees With Factors ArrayHash TableDynamic ProgrammingSorting | Medium | 13% | 53.1% | ||
| #1884 | Egg Drop With 2 Eggs and N Floors MathDynamic Programming | Medium | 13% | 74.7% | ||
| #1687 | Delivering Boxes from Storage to Ports ArrayDynamic ProgrammingSegment TreeQueueHeap (Priority Queue)Prefix SumMonotonic Queue | Hard | 100% | 39.9% | ||
| #3205 | Maximum Array Hopping Score I ArrayDynamic ProgrammingStackGreedyMonotonic Stack | Medium | 100% | 77.1% | ||
| #2403 | Minimum Time to Kill All Monsters ArrayDynamic ProgrammingBit ManipulationBitmask | Hard | 100% | 57.7% | ||
| #1714 | Sum Of Special Evenly-Spaced Elements In Array ArrayDynamic ProgrammingSqrt Decomposition | Hard | 100% | 50.0% | ||
| #2876 | Count Visited Nodes in a Directed Graph Dynamic ProgrammingDepth-First SearchGraph TheoryTopological SortMemoizationKosaraju's AlgorithmTarjan's SCC Algorithm | Hard | 100% | 31.1% | ||
| #2585 | Number of Ways to Earn Points ArrayDynamic ProgrammingKnapsack ProblemMultiple Knapsack | Hard | 100% | 60.0% | ||
| #3213 | Construct String with Minimum Cost ArrayStringDynamic ProgrammingSuffix Array | Hard | 100% | 19.0% | ||
| #3180 | Maximum Total Reward Using Operations I ArrayDynamic ProgrammingBit ManipulationSorting | Medium | 100% | 31.1% | ||
| #3181 | Maximum Total Reward Using Operations II ArrayDynamic ProgrammingBit ManipulationSorting | Hard | 100% | 22.0% | ||
| #2809 | Minimum Time to Make Array Sum At Most x ArrayDynamic ProgrammingSorting | Hard | 100% | 27.9% | ||
| #2896 | Apply Operations to Make Two Strings Equal StringDynamic Programming | Medium | 100% | 27.8% | ||
| #2826 | Sorting Three Groups ArrayBinary SearchDynamic Programming | Medium | 100% | 43.2% | ||
| #1230 | Toss Strange Coins ArrayMathDynamic ProgrammingProbability and Statistics | Medium | 100% | 58.1% | ||
| #2900 | Longest Unequal Adjacent Groups Subsequence I ArrayStringDynamic ProgrammingGreedy | Easy | 100% | 66.9% | ||
| #3883 | Count Non Decreasing Arrays With Given Digit Sums ArrayDynamic ProgrammingPrefix Sum | Hard | 100% | 41.6% | ||
| #3003 | Maximize the Number of Partitions After Operations StringDynamic ProgrammingBit ManipulationBitmask | Hard | 100% | 53.4% | ||
| #3376 | Minimum Time to Break Locks I ArrayDynamic ProgrammingBacktrackingBit ManipulationBreadth-First SearchBitmask | Medium | 100% | 32.8% | ||
| #2547 | Minimum Cost to Split an Array ArrayHash TableDynamic ProgrammingCounting | Hard | 100% | 44.8% | ||
| #2393 | Count Strictly Increasing Subarrays ArrayMathDynamic Programming | Medium | 100% | 71.1% | ||
| #2318 | Number of Distinct Roll Sequences Dynamic ProgrammingMemoization | Hard | 100% | 58.3% | ||
| #2930 | Number of Strings Which Can Be Rearranged to Contain Substring MathDynamic ProgrammingCombinatorics | Medium | 100% | 57.4% | ||
| #2005 | Subtree Removal Game with Fibonacci Tree MathDynamic ProgrammingTreeBinary TreeGame TheorySprague–Grundy Theorem | Hard | 100% | 57.8% | ||
| #2533 | Number of Good Binary Strings Dynamic Programming | Medium | 91% | 53.0% | ||
| #2846 | Minimum Edge Weight Equilibrium Queries in a Tree ArrayDynamic ProgrammingBit ManipulationTreeDepth-First Search | Hard | 90% | 47.0% | ||
| #1746 | Maximum Subarray Sum After One Operation ArrayDynamic Programming | Medium | 90% | 65.2% | ||
| #2378 | Choose Edges to Maximize Score in a Tree Dynamic ProgrammingTreeDepth-First Search | Medium | 90% | 56.8% | ||
| #2152 | Minimum Number of Lines to Cover Points ArrayHash TableMathDynamic ProgrammingBacktrackingBit ManipulationGeometryBitmask | Medium | 88% | 44.1% | ||
| #634 | Find the Derangement of An Array MathDynamic ProgrammingCombinatorics | Medium | 88% | 41.7% | ||
| #2361 | Minimum Costs Using the Train Line ArrayDynamic Programming | Hard | 88% | 77.9% | ||
| #1997 | First Day Where You Have Been in All the Rooms ArrayDynamic Programming | Medium | 88% | 40.5% | ||
| #3148 | Maximum Difference Score in a Grid ArrayDynamic ProgrammingMatrix | Medium | 88% | 48.3% | ||
| #1916 | Count Ways to Build Rooms in an Ant Colony ArrayMathDynamic ProgrammingTreeDepth-First SearchGraph TheoryTopological SortCombinatoricsDP on TreesFermat's Little Theorem | Hard | 88% | 51.8% | ||
| #2143 | Choose Numbers From Two Arrays in Range ArrayDynamic Programming | Hard | 88% | 52.9% | ||
| #2892 | Minimizing Array After Replacing Pairs With Their Product ArrayDynamic ProgrammingGreedy | Medium | 88% | 40.8% | ||
| #1977 | Number of Ways to Separate Numbers StringDynamic ProgrammingPrefix Sum | Hard | 88% | 21.8% | ||
| #3628 | Maximum Number of Subsequences After One Inserting StringDynamic ProgrammingGreedyPrefix Sum | Medium | 83% | 32.1% | ||
| #2920 | Maximum Points After Collecting Coins From All Nodes ArrayDynamic ProgrammingBit ManipulationTreeDepth-First SearchMemoizationDP on Trees | Hard | 75% | 36.9% | ||
| #3332 | Maximum Points Tourist Can Earn ArrayDynamic ProgrammingMatrix | Medium | 75% | 47.9% | ||
| #2430 | Maximum Deletions on a String StringDynamic ProgrammingRolling HashString MatchingHash Function | Hard | 75% | 36.2% | ||
| #2189 | Number of Ways to Build House of Cards MathDynamic Programming | Medium | 75% | 62.9% | ||
| #2957 | Remove Adjacent Almost-Equal Characters StringDynamic ProgrammingGreedy | Medium | 75% | 53.8% | ||
| #3575 | Maximum Good Subtree Score ArrayDynamic ProgrammingBit ManipulationTreeDepth-First SearchBitmask | Hard | 75% | 45.7% | ||
| #1872 | Stone Game VIII ArrayMathDynamic ProgrammingMinimaxPrefix SumGame TheoryZero-Sum Game | Hard | 75% | 54.2% | ||
| #2827 | Number of Beautiful Integers in the Range MathDynamic Programming | Hard | 75% | 23.0% | ||
| #3176 | Find the Maximum Length of a Good Subsequence I ArrayHash TableDynamic Programming | Medium | 75% | 33.0% | ||
| #3915 | Maximum Sum of Alternating Subsequence With Distance at Least K ArrayDynamic ProgrammingSegment Tree | Hard | 75% | 32.2% | ||
| #3122 | Minimum Number of Operations to Satisfy Conditions ArrayDynamic ProgrammingMatrix | Medium | 67% | 42.4% | ||
| #3251 | Find the Count of Monotonic Pairs II ArrayMathDynamic ProgrammingCombinatoricsPrefix Sum | Hard | 64% | 24.9% | ||
| #2867 | Count Valid Paths in a Tree MathDynamic ProgrammingTreeDepth-First SearchNumber TheoryPrimality TestSieve TheoryPrime Number Sieve | Hard | 64% | 36.6% | ||
| #3524 | Find X Value of Array I ArrayMathDynamic Programming | Medium | 63% | 37.7% | ||
| #3098 | Find the Sum of Subsequence Powers ArrayDynamic ProgrammingSorting | Hard | 63% | 25.5% | ||
| #2836 | Maximize Value of Function in a Ball Passing Game ArrayDynamic ProgrammingBit Manipulation | Hard | 63% | 31.5% | ||
| #2992 | Number of Self-Divisible Permutations ArrayMathDynamic ProgrammingBacktrackingBit ManipulationNumber TheoryBitmask | Medium | 63% | 72.1% | ||
| #3135 | Equalize Strings by Adding or Removing Characters at Ends StringBinary SearchDynamic ProgrammingSliding WindowHash Function | Medium | 63% | 56.5% | ||
| #1659 | Maximize Grid Happiness Dynamic ProgrammingBit ManipulationMemoizationBitmask | Hard | 63% | 41.3% | ||
| #3939 | Count Non Adjacent Subsets in a Rooted Tree ArrayDynamic ProgrammingTreeDepth-First Search | Hard | 63% | 56.1% | ||
| #2712 | Minimum Cost to Make All Characters Equal StringDynamic ProgrammingGreedy | Medium | 60% | 54.5% | ||
| #1220 | Count Vowels Permutation Dynamic Programming | Hard | 54% | 61.3% | ||
| #3466 | Maximum Coin Collection ArrayDynamic Programming | Medium | 54% | 53.0% | ||
| #1745 | Palindrome Partitioning IV StringDynamic Programming | Hard | 51% | 45.5% | ||
| #2431 | Maximize Total Tastiness of Purchased Fruits ArrayDynamic Programming | Medium | 50% | 64.6% | ||
| #3891 | Minimum Increase to Maximize Special Indices ArrayDynamic ProgrammingGreedyPrefix Sum | Medium | 50% | 19.8% | ||
| #2420 | Find All Good Indices ArrayDynamic ProgrammingPrefix Sum | Medium | 50% | 41.1% | ||
| #1771 | Maximize Palindrome Length From Subsequences StringDynamic Programming | Hard | 50% | 38.6% | ||
| #2912 | Number of Ways to Reach Destination in the Grid MathDynamic ProgrammingCombinatorics | Hard | 50% | 57.8% | ||
| #3192 | Minimum Operations to Make Binary Array Elements Equal to One II ArrayDynamic ProgrammingGreedy | Medium | 50% | 65.3% | ||
| #2750 | Ways to Split Array Into Good Subarrays ArrayMathDynamic Programming | Medium | 43% | 35.2% | ||
| #2673 | Make Costs of Paths Equal in a Binary Tree ArrayDynamic ProgrammingGreedyTreeBinary Tree | Medium | 39% | 58.8% | ||
| #3317 | Find the Number of Possible Ways for an Event MathDynamic ProgrammingCombinatorics | Hard | 38% | 35.4% | ||
| #3610 | Minimum Number of Primes to Sum to Target ArrayMathDynamic ProgrammingNumber Theory | Medium | 38% | 59.8% | ||
| #2979 | Most Expensive Item That Can Not Be Bought MathDynamic ProgrammingNumber Theory | Medium | 38% | 80.1% | ||
| #2272 | Substring With Largest Variance Hash TableStringDynamic ProgrammingEnumeration | Hard | 38% | 46.0% | ||
| #2355 | Maximum Number of Books You Can Take ArrayDynamic ProgrammingStackMonotonic Stack | Hard | 38% | 39.5% | ||
| #3040 | Maximum Number of Operations With the Same Score II ArrayDynamic ProgrammingMemoization | Medium | 38% | 34.3% | ||
| #2188 | Minimum Time to Finish the Race ArrayDynamic Programming | Hard | 38% | 43.4% | ||
| #351 | Android Unlock Patterns Dynamic ProgrammingBacktrackingBit ManipulationBitmask | Medium | 38% | 53.9% | ||
| #3393 | Count Paths With the Given XOR Value ArrayDynamic ProgrammingBit ManipulationMatrix | Medium | 31% | 40.8% | ||
| #3772 | Maximum Subgraph Score in a Tree ArrayDynamic ProgrammingTreeDepth-First Search | Hard | 29% | 71.0% | ||
| #3738 | Longest Non-Decreasing Subarray After Replacing at Most One Element ArrayDynamic Programming | Medium | 29% | 22.6% | ||
| #3351 | Sum of Good Subsequences ArrayHash TableDynamic Programming | Hard | 28% | 31.2% | ||
| #1246 | Palindrome Removal ArrayDynamic Programming | Hard | 27% | 46.2% | ||
| #2321 | Maximum Score Of Spliced Array ArrayDynamic Programming | Hard | 27% | 58.7% | ||
| #1638 | Count Substrings That Differ by One Character Hash TableStringDynamic ProgrammingEnumeration | Medium | 27% | 72.4% | ||
| #1681 | Minimum Incompatibility ArrayHash TableDynamic ProgrammingBit ManipulationBitmask | Hard | 27% | 41.4% | ||
| #2052 | Minimum Cost to Separate Sentence Into Rows StringDynamic Programming | Medium | 27% | 51.2% | ||
| #750 | Number Of Corner Rectangles ArrayMathDynamic ProgrammingMatrix | Medium | 25% | 67.9% | ||
| #2289 | Steps to Make Array Non-decreasing ArrayLinked ListDynamic ProgrammingStackMonotonic StackSimulation | Medium | 25% | 25.0% | ||
| #2036 | Maximum Alternating Subarray Sum ArrayDynamic Programming | Medium | 25% | 40.0% | ||
| #2830 | Maximize the Profit as the Salesman ArrayHash TableBinary SearchDynamic ProgrammingSorting | Medium | 25% | 38.5% | ||
| #553 | Optimal Division ArrayMathDynamic Programming | Medium | 25% | 63.3% | ||
| #1259 | Handshakes That Don't Cross MathDynamic Programming | Hard | 25% | 61.5% | ||
| #2973 | Find Number of Coins to Place in Tree Nodes Dynamic ProgrammingTreeDepth-First SearchSortingHeap (Priority Queue)DP on Trees | Hard | 25% | 37.7% | ||
| #3154 | Find Number of Ways to Reach the K-th Stair MathDynamic ProgrammingBit ManipulationMemoizationCombinatorics | Hard | 25% | 38.0% | ||
| #1067 | Digit Count in Range MathDynamic Programming | Hard | 25% | 46.5% | ||
| #1363 | Largest Multiple of Three ArrayMathDynamic ProgrammingGreedySorting | Hard | 25% | 33.4% | ||
| #1621 | Number of Sets of K Non-Overlapping Line Segments MathDynamic ProgrammingCombinatoricsPrefix Sum | Medium | 25% | 46.1% | ||
| #1735 | Count Ways to Make Array With Product ArrayMathDynamic ProgrammingCombinatoricsNumber TheoryPrime FactorizationFermat's Little Theorem | Hard | 25% | 55.3% | ||
| #2297 | Jump Game VIII ArrayDynamic ProgrammingStackGraph TheoryMonotonic StackShortest Path | Medium | 25% | 45.9% | ||
| #1955 | Count Number of Special Subsequences ArrayDynamic Programming | Hard | 25% | 53.1% | ||
| #2638 | Count the Number of K-Free Subsets ArrayMathDynamic ProgrammingSortingCombinatorics | Medium | 25% | 47.3% | ||
| #2926 | Maximum Balanced Subsequence Sum ArrayBinary SearchDynamic ProgrammingBinary Indexed TreeSegment Tree | Hard | 25% | 26.2% | ||
| #3032 | Count Numbers With Unique Digits II Hash TableMathDynamic Programming | Easy | 25% | 87.2% | ||
| #3952 | Maximum Total Value of Covered Indices ArrayStringDynamic ProgrammingGreedy | Medium | 25% | 28.2% | ||
| #1444 | Number of Ways of Cutting a Pizza ArrayDynamic ProgrammingMemoizationMatrixPrefix Sum | Hard | 25% | 61.6% | ||
| #2510 | Check if There is a Path With Equal Number of 0's And 1's ArrayDynamic ProgrammingMatrix | Medium | 25% | 52.2% | ||
| #3472 | Longest Palindromic Subsequence After at Most K Operations StringDynamic Programming | Medium | 25% | 38.0% | ||
| #418 | Sentence Screen Fitting ArrayStringDynamic Programming | Medium | 25% | 36.4% | ||
| #1728 | Cat and Mouse II ArrayMathDynamic ProgrammingGraph TheoryTopological SortMemoizationMinimaxMatrixGame TheoryZero-Sum Game | Hard | 25% | 40.4% | ||
| #1786 | Number of Restricted Paths From First to Last Node Dynamic ProgrammingGraph TheoryTopological SortHeap (Priority Queue)Shortest PathDijkstra's Algorithm | Medium | 25% | 41.5% | ||
| #2556 | Disconnect Path in a Binary Matrix by at Most One Flip ArrayDynamic ProgrammingDepth-First SearchBreadth-First SearchMatrix | Medium | 25% | 28.0% | ||
| #3686 | Number of Stable Subsequences ArrayDynamic Programming | Hard | 25% | 60.2% | ||
| #1388 | Pizza With 3n Slices ArrayDynamic ProgrammingGreedyHeap (Priority Queue) | Hard | 25% | 54.1% | ||
| #1553 | Minimum Number of Days to Eat N Oranges Dynamic ProgrammingMemoization | Hard | 25% | 36.4% | ||
| #2088 | Count Fertile Pyramids in a Land ArrayDynamic ProgrammingMatrix | Hard | 25% | 66.4% | ||
| #3287 | Find the Maximum Sequence Value of Array ArrayDynamic ProgrammingBit Manipulation | Hard | 25% | 22.1% | ||
| #562 | Longest Line of Consecutive One in Matrix ArrayDynamic ProgrammingMatrix | Medium | 25% | 50.6% | ||
| #1147 | Longest Chunked Palindrome Decomposition Two PointersStringDynamic ProgrammingGreedyRolling HashHash Function | Hard | 25% | 59.0% | ||
| #2218 | Maximum Value of K Coins From Piles ArrayDynamic ProgrammingPrefix Sum | Hard | 25% | 60.5% | ||
| #1269 | Number of Ways to Stay in the Same Place After Some Steps Dynamic Programming | Hard | 25% | 50.2% | ||
| #1449 | Form Largest Integer With Digits That Add up to Target ArrayDynamic ProgrammingKnapsack ProblemComplete Knapsack | Hard | 25% | 49.9% | ||
| #1477 | Find Two Non-overlapping Sub-arrays Each With Target Sum ArrayHash TableBinary SearchDynamic ProgrammingSliding Window | Medium | 25% | 36.9% | ||
| #1595 | Minimum Cost to Connect Two Groups of Points ArrayDynamic ProgrammingBit ManipulationMatrixBitmaskBipartite GraphSuccessive Shortest Path AlgorithmMatching (Graph)Minimum-Cost FlowFlow Network | Hard | 25% | 50.4% | ||
| #1655 | Distribute Repeating Integers ArrayHash TableDynamic ProgrammingBacktrackingBit ManipulationCountingBitmask | Hard | 25% | 41.0% | ||
| #1770 | Maximum Score from Performing Multiplication Operations ArrayDynamic Programming | Hard | 25% | 43.5% | ||
| #1815 | Maximum Number of Groups Getting Fresh Donuts ArrayDynamic ProgrammingBit ManipulationMemoizationBitmask | Hard | 25% | 41.5% | ||
| #2167 | Minimum Time to Remove All Cars Containing Illegal Goods StringDynamic Programming | Hard | 25% | 42.1% | ||
| #2172 | Maximum AND Sum of Array ArrayDynamic ProgrammingBit ManipulationBitmask | Hard | 25% | 50.9% | ||
| #2478 | Number of Beautiful Partitions StringDynamic ProgrammingPrefix Sum | Hard | 25% | 33.2% | ||
| #471 | Encode String with Shortest Length StringDynamic Programming | Hard | 25% | 50.6% | ||
| #656 | Coin Path ArrayDynamic Programming | Hard | 25% | 34.4% | ||
| #1066 | Campus Bikes II ArrayDynamic ProgrammingBacktrackingBit ManipulationBitmaskHungarian AlgorithmBipartite GraphSuccessive Shortest Path AlgorithmMatching (Graph)Minimum-Cost FlowFlow Network | Medium | 25% | 55.9% | ||
| #1182 | Shortest Distance to Target Color ArrayBinary SearchDynamic Programming | Medium | 25% | 56.5% | ||
| #2304 | Minimum Path Cost in a Grid ArrayDynamic ProgrammingMatrix | Medium | 25% | 68.2% | ||
| #1548 | The Most Similar Path in a Graph ArrayStringDynamic ProgrammingGraph Theory | Hard | 25% | 59.5% | ||
| #1692 | Count Ways to Distribute Candies Dynamic Programming | Hard | 25% | 64.0% | ||
| #1774 | Closest Dessert Cost ArrayDynamic ProgrammingBacktrackingKnapsack ProblemMixed Knapsack | Medium | 25% | 48.9% | ||
| #1866 | Number of Ways to Rearrange Sticks With K Sticks Visible MathDynamic ProgrammingCombinatorics | Hard | 25% | 61.9% | ||
| #1896 | Minimum Cost to Change the Final Value of Expression MathStringDynamic ProgrammingStack | Hard | 25% | 49.9% | ||
| #1883 | Minimum Skips to Arrive at Meeting On Time ArrayDynamic Programming | Hard | 25% | 38.8% | ||
| #1940 | Longest Common Subsequence Between Sorted Arrays ArrayHash TableCounting | Medium | 25% | 81.3% | ||
| #2209 | Minimum White Tiles After Covering With Carpets StringDynamic ProgrammingPrefix Sum | Hard | 25% | 39.1% | ||
| #2267 | Check if There Is a Valid Parentheses String Path ArrayDynamic ProgrammingMatrixBracket Sequences | Hard | 25% | 40.5% | ||
| #2313 | Minimum Flips in Binary Tree to Get Result Dynamic ProgrammingTreeDepth-First SearchBinary Tree | Hard | 25% | 57.0% | ||
| #2919 | Minimum Increment Operations to Make Array Beautiful ArrayDynamic Programming | Medium | 25% | 35.0% | ||
| #2925 | Maximum Score After Applying Operations on a Tree Dynamic ProgrammingTreeDepth-First SearchDP on Trees | Medium | 25% | 47.5% | ||
| #3041 | Maximize Consecutive Elements in an Array After Modification ArrayDynamic ProgrammingSorting | Hard | 25% | 34.1% | ||
| #3117 | Minimum Sum of Values by Dividing Array ArrayBinary SearchDynamic ProgrammingBit ManipulationSegment TreeQueue | Hard | 25% | 27.9% | ||
| #3196 | Maximize Total Cost of Alternating Subarrays ArrayDynamic Programming | Medium | 25% | 29.9% | ||
| #3638 | Maximum Balanced Shipments ArrayDynamic ProgrammingStackGreedyMonotonic Stack | Medium | 16% | 61.5% | ||
| #3149 | Find the Minimum Cost Array Permutation ArrayDynamic ProgrammingBit ManipulationBitmask | Hard | 15% | 26.0% | ||
| #3533 | Concatenated Divisibility ArrayDynamic ProgrammingBit ManipulationBitmask | Hard | 13% | 31.2% | ||
| #3458 | Select K Disjoint Special Substrings Hash TableStringDynamic ProgrammingGreedySorting | Medium | 13% | 19.4% | ||
| #1643 | Kth Smallest Instructions ArrayMathDynamic ProgrammingCombinatorics | Hard | 13% | 45.0% | ||
| #3857 | Minimum Cost to Split into Ones MathDynamic Programming | Medium | 13% | 82.6% | ||
| #376 | Wiggle Subsequence ArrayDynamic ProgrammingGreedy | Medium | 13% | 49.6% | ||
| #3557 | Find Maximum Number of Non Intersecting Substrings Hash TableStringDynamic ProgrammingGreedy | Medium | 13% | 31.1% | ||
| #3509 | Maximum Product of Subsequences With an Alternating Sum Equal to K ArrayHash TableDynamic Programming | Hard | 13% | 13.6% | ||
| #3797 | Count Routes to Climb a Rectangular Grid ArrayDynamic ProgrammingMatrixPrefix Sum | Hard | 13% | 25.1% | ||
| #3946 | Maximum Number of Items From Sale I ArrayDynamic ProgrammingGreedy | Medium | 13% | 37.3% | ||
| #2573 | Find the String with LCP ArrayStringDynamic ProgrammingGreedyUnion-FindMatrix | Hard | 13% | 63.1% | ||
| #3585 | Find Weighted Median Node in Tree ArrayBinary SearchDynamic ProgrammingBit ManipulationTreeDepth-First Search | Hard | 13% | 26.2% | ||
| #3685 | Subsequence Sum After Capping Elements ArrayTwo PointersDynamic ProgrammingSorting | Medium | 13% | 25.4% | ||
| #466 | Count The Repetitions Two PointersStringDynamic Programming | Hard | 13% | 35.1% | ||
| #3320 | Count The Number of Winning Sequences StringDynamic Programming | Hard | 13% | 32.4% | ||
| #3747 | Count Distinct Integers After Removing Zeros MathDynamic Programming | Medium | 13% | 23.1% | ||
| #2400 | Number of Ways to Reach a Position After Exactly k Steps MathDynamic ProgrammingCombinatorics | Medium | 13% | 37.1% | ||
| #2376 | Count Special Integers MathDynamic Programming | Hard | 13% | 44.2% | ||
| #2369 | Check if There is a Valid Partition For The Array ArrayDynamic Programming | Medium | 13% | 52.5% | ||
| #458 | Poor Pigs MathDynamic ProgrammingCombinatorics | Hard | 13% | 59.1% | ||
| #3489 | Zero Array Transformation IV ArrayDynamic Programming | Medium | 13% | 31.5% | ||
| #3538 | Merge Operations for Minimum Travel Time ArrayDynamic ProgrammingPrefix Sum | Hard | 13% | 31.4% | ||
| #1563 | Stone Game V ArrayMathDynamic ProgrammingGame Theory | Hard | 13% | 42.1% | ||
| #3504 | Longest Palindrome After Substring Concatenation II Two PointersStringDynamic Programming | Hard | 13% | 18.2% | ||
| #1191 | K-Concatenation Maximum Sum ArrayDynamic Programming | Medium | 13% | 25.8% | ||
| #1641 | Count Sorted Vowel Strings MathDynamic ProgrammingCombinatorics | Medium | 13% | 79.3% | ||
| #3599 | Partition Array to Minimize XOR ArrayDynamic ProgrammingBit ManipulationPrefix Sum | Medium | 13% | 41.6% | ||
| #3882 | Minimum XOR Path in a Grid ArrayDynamic ProgrammingBit ManipulationMatrix | Medium | 13% | 39.9% | ||
| #3448 | Count Substrings Divisible By Last Digit StringDynamic Programming | Hard | 13% | 23.6% | ||
| #3615 | Longest Palindromic Path in Graph StringDynamic ProgrammingBit ManipulationGraph TheoryBitmask | Hard | 13% | 22.5% |
Showing 542 of 542 problems in 2D Dynamic Programming & KnapsackFiltered: All Companies