思路
欸,我自己做出来了耶哈哈啊哈哈
其实买卖股票的思路就是,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]};
…但是我跟官方的解法不同。。干
