LeetCode188. 买卖股票的最佳时机 IV
思路
该题是买卖k次股票。和买卖两次是一样的。
LeetCode123. 买卖股票的最佳时机 III_想进阿里的小菜鸡的博客-CSDN博客
只是需要把内层循环的所有dp[i][j]中的j给全部找出来就好了,买卖k次有k*2种j。如果下标还是从0开始的话会产生k*2个dp[i][j]会很麻烦,要是用奇数来表示持有,偶数表示不持有时的最大价值。则会比较简单。就是将之前题的奇偶反转下就可以了。
// 股票状态: 奇数表示第 k 次交易持有/买入, 偶数表示第 k 次交易不持有/卖出, 0 表示没有操作
初始化的时候也就是奇数买入的全部为-prices[0]; 其他全部一样即可。
代码
class Solution {
public int maxProfit(int k, int[] prices) {
if(prices.length ==0){
return 0;
}
int dp[][] = new int[prices.length][k*2+1];
共有 0 条评论