Dynamic Programming21 sections · 916 units
Open in Course

Maximum Sum Increasing Subsequence - State Change

Sum instead of length

The dp definition changes slightly: dp[i]dp[i] = maximum sum of increasing subsequence ending at index ii Base case: dp[i]=nums[i]dp[i] = nums[i] for all ii.

Each element alone is a valid subsequence with sum equal to itself. Transition: dp[i]=max(dp[j]+nums[i])dp[i] = \max(dp[j] + nums[i]) for all j<ij < i where nums[j]<nums[i]nums[j] < nums[i]. The answer is max(dp)\max(dp), not dp[n1]dp[n-1]. Same structure as LIS, different improvement target.