Each subpattern solves a specific type of problem. Click on a card to view its template.
State depends on a constant number of previous elements (e.g., dp[i-1], dp[i-2]).
Decide whether to include or exclude items to achieve a target weight or sum constraint.
Compare prefixes of two strings (size M and N) using a 2D grid.
Determine constraints on subsequences or maintain discrete state machine transitions.
Traverse a 2D board with specific direction constraints (e.g., right/down).
Template for: 1D DP & Linear Transitions
1// 1D DP space-optimized to O(1)2int linearDP(int n)3{4 if (n <= 1) return n;56 int prev2 = 0; // state for dp[i-2]7 int prev1 = 1; // state for dp[i-1]8 int cur = 0; // state for dp[i]910 for (int i = 2; i <= n; i++)11 {12 // Example transition: dp[i] = dp[i-1] + dp[i-2]13 cur = prev1 + prev2;14 prev2 = prev1;15 prev1 = cur;16 }1718 return cur;19}
LeetCode #70
LeetCode #198
LeetCode #746
LeetCode #91
LeetCode #416
LeetCode #322
LeetCode #494
LeetCode #518
LeetCode #1143
LeetCode #72
LeetCode #516
LeetCode #300
LeetCode #309
LeetCode #1048
LeetCode #62
LeetCode #64
LeetCode #221