Dynamic Programming21 sections · 916 units
Open in Course

Maximum Sum Increasing Subsequence - Walkthrough

Weighted LIS

Find increasing subsequence with maximum sum. The DP tracks sum instead of length. dp[i]dp[i] = maximum sum of increasing subsequence ending at ii.

Base: dp[i]=nums[i]dp[i] = nums[i]. Transition: dp[i]=max(nums[i],max(dp[j]+nums[i]))dp[i] = \max(nums[i], \max(dp[j] + nums[i])) for all j<ij < i with nums[j]<nums[i]nums[j] < nums[i]. Example: [1,101,2,3,100,4,5][1, 101, 2, 3, 100, 4, 5]. Max sum IS is [1,2,3,100][1, 2, 3, 100] with sum 106106, not the longest [1,2,3,4,5][1, 2, 3, 4, 5] with sum 1515.