Data Structures19 sections · 729 units
Open in Course

Constrained Sum - DP Formulation

State and transition

Let dp[i]dp[i] be the maximum sum of a subsequence ending at index ii.

Transition: dp[i]=nums[i]+max(0,maxj[ik,i1]dp[j])dp[i] = nums[i] + \max(0, \max_{j \in [i-k, i-1]} dp[j]) You either start fresh at ii (just nums[i]nums[i]) or extend from some dp[j]dp[j] within distance kk.

Naive implementation: O(nk)O(nk) because you scan kk previous states. With monotonic deque: O(n)O(n) by maintaining max over the sliding window of dpdp values.