Minimum Total Space Wasted With K Resizing Operations LeetCode solution in C++
1class Solution {2public:3int dp[205][205];4#define maxi pow(10, 8)5#define ll long long6int dfs(vector<int> &nums, int idx, int k) {7int n = nums.size();8if (idx == n) return 0;9if (k < 0) return maxi;10if (dp[idx][k] != -1) return dp[idx][k];11ll sum = 0, mx = 0, ans = maxi;12for (int i = idx; i < n; i++) {13sum += nums[i];14mx = max(mx, (ll)nums[i]);15ans = min(ans, mx * (i - idx + 1) - sum + dfs(nums, i + 1, k - 1));16}17return dp[idx][k] = ans;18}1920int minSpaceWastedKResizing(vector<int> &nums, int k) {21memset(dp, -1, sizeof(dp));22return dfs(nums, 0, k);23}24};