var maxProfit = function(prices) { const n = prices.length; const dp = new Array(n).fill(0).map(v => new Array(2).fill(0)); dp[0][0] = 0, dp[0][1] = -prices[0]; for (let i = 1; i < n; ++i) { dp[i][0] = Math.max(dp[i - 1][0], dp[i - 1][1] + prices[i]); dp[i][1] = Math.max(dp[i - 1][1], dp[i - 1][0] - prices[i]); } return dp[n - 1][0];};
var maxProfit = function(prices) { let dp = []; for (let i = -1; i < prices.length; i++) { dp[i] = [] for (let j = 0; j <= 1; j++) { dp[i][j] = []; dp[i][j][0] = 0; dp[i][j][1] = 0; if (i === -1) { dp[i][j][1] = -Infinity; } if (j === 0) { dp[i][j][1] = -Infinity; } if (j === -1) { dp[i][j][1] = -Infinity; } } } for (let i = 0; i < prices.length; i++) { for (let j = 1; j <= 1; j++) { dp[i][j][0] = Math.max(dp[i - 1][j][0], dp[i - 1][j][1] + prices[i]); dp[i][j][1] = Math.max(dp[i - 1][j][1], dp[i - 1][j - 1][0] - prices[i]); } } return dp[prices.length - 1][1][0];};