Best Time to Buy and Sell Stock IV LeetCode solution in JavaScript

1
var maxProfit = function (k, prices) {
2
const len = prices.length;
3
let dp = new Array(len).fill(0);
4
dp = dp.map(() => new Array(2).fill(0).map(() => new Array(k + 1).fill(-1)));
5
const solve = (day = 0, cap = k, buy = 0) => {
6
if (day == len || cap == 0) return 0;
7

8
if (dp[day][buy][cap] != -1) return dp[day][buy][cap];
9

10
let take, notake;
11
notake = solve(day + 1, cap, buy);
12
if (buy == 0) {
13
take = solve(day + 1, cap, 1) - prices[day];
14
} else {
15
take = solve(day + 1, cap - 1, 0) + prices[day];
16
}
17
return (dp[day][buy][cap] = Math.max(take, notake));
18
};
19
return solve();
20
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0