Below is a pattern-driven set of foundational dynamic programming (DP) problems. It’s organized to build from 1D → 2D → advanced state modeling, with emphasis on recognizing transitions and state definitions.
dp[i]dp[i] = dp[i-1] + dp[i-2]
dp[i] = max(dp[i-1], nums[i] + dp[i-2])