思路
欸,我自己做出来了耶哈哈啊哈哈
其实买卖股票的思路就是,dp是一个二维数组,第二维都是当前状态(买/卖/冷冻期/第n次买/第n次卖…)
然后再去算递推公式就好啦
var maxProfit = function(prices) {
let dp =new Array(prices.length).fill(0).map(()=>new Array(3).fill(0))
dp[0][0] = -prices[0]
console.log(dp)
for(let i=1;i<prices.length;i++){
dp[i][0] =Math.max(dp[i-1][0],dp[i-1][2]-prices[i])//要么前一天就买了,要么前一天是冷冻期今天买
dp[i][1] =Math.max(dp[i-1][1],dp[i-1][0]+prices[i])//要么前一天就卖了,要么前一天持有今天卖
dp[i][2] =dp[i-1][1]//冷冻期,前一天卖了才会进入冷冻期,所以利润跟前一天卖了一样
}
return dp[prices.length-1][1]
};
…但是我跟官方的解法不同。。干