思路和 Best Time to Buy and Sell Stock III 类似,就是把只能买卖两次变成了可以买卖 k 次。但是需要注意的是这种情况下需要进行剪枝。因为在 k 太大的情况下,极容易出现内存超过限制,所以在k>=2/prices.size()的情况下应该及时认为这个情况下次数是不受限制的,然后按照次数不受限制的情况进行计算。
递推公式:
1 2
buy[j]=sell[j-1]-price[i] if buy[j]<sell[j-1]+price[i] sell[j]=buy[j]+price[i] if sell[j]<buy[j]+price[i]