Current streak:
0 days
Longest streak:
6 days
Less
More
#include <bits/stdc++.h>
int optimalCost(vector<int>& keys, vector<int>& freq, int n) { vector<vector<int>> dp(n,vector<int>(n,0)); for (int i = 0; i < n; i++) { dp[i][i]=freq[i]; } int diff=n-1; for (int i = 1; i <= diff; i++) { for (int row = 0; row <= n - 1; row++) { if (i + row <= n - 1) { int col = i + row; int extra = INT_MAX; for (int r = row; r <= col; r++) { int part1 = 0, part2 = 0; if (r - 1 >= row) { part1 = dp[row][r - 1]; } if (r + 1 <= col) { part2 = dp[r + 1][col]; } extra=min(extra, part1+ part2); dp[row][col] += dp[r][r]; } dp[row][col]+=extra; } } } return dp[0][n-1]; // Write your code here
}