Skip to main content

Maximum sum increasing subsequence

Problem

Given an array of n positive integers. Find the sum of the maximum sum subsequence of the given array such that the integers in the subsequence are sorted in increasing order i.e. increasing subsequence.

Solution Approach

Expected Time complexity: O(n2)O(n^2)

Click - to see solution code
class Solution {
public:
int maxSumIS(int arr[], int n) {
vector<int> dp(n);
dp[0] = arr[0];
int ans = arr[0];
for (int i = 1; i < n; i++) {
dp[i] = arr[i];
for (int j = 0; j < i; j++) {
if (arr[j] < arr[i]) {
dp[i] = max(dp[i], dp[j] + arr[i]);
}
ans = max(ans, dp[i]);
}
}
return ans;
}
};