动态规划31(Leetcode188买卖股票的最佳时机4)

代码:

我的状态方程:

buyij=max{buyi−1j,selli−1j-1−pricei}

题解里的:

buyij=max{buyi−1j,selli−1j−pricei}

..没理解题解的 但我的通过了

java 复制代码
class Solution {
    public int maxProfit(int k, int[] prices) {
        if(prices.length==0)return 0;
        int n = prices.length;
        k = Math.min(k,n/2);
        if(k==0)return 0;
        int[][] buy = new int[n][k];
        int[][] sell = new int[n][k];
        buy[0][0]=-prices[0];
        sell[0][0]=0;
        for(int i=1;i<k;i++){
            buy[0][i] = sell[0][i] = Integer.MIN_VALUE / 2;
        }
        for(int i=1;i<n;i++){
            buy[i][0] = Math.max(buy[i-1][0],-prices[i]);
            sell[i][0] = Math.max(sell[i-1][0],buy[i-1][0]+prices[i]);
            for(int j=1;j<k;j++){
                buy[i][j] = Math.max(sell[i-1][j-1]-prices[i],buy[i-1][j]);
                sell[i][j] = Math.max(buy[i-1][j]+prices[i],sell[i-1][j]);
            }
        }
        return Arrays.stream(sell[n-1]).max().getAsInt();
    }
}
相关推荐
驭渊的小故事4 小时前
NC229023 题解:二分答案求解“最大化最小值“问题
java·算法
朝朝辞暮i4 小时前
C++ 第 36 课:Action——机械臂/VLA 非常重要
开发语言·c++·算法·ros2
ra90fy4 小时前
B3873 [GESP202309 六级] 小杨买饮料
c++·算法
Omics Pro4 小时前
北理工李荣华:AI虚拟细胞证据多模态推理基准
数据库·人工智能·算法·机器学习·自然语言处理
xieliyu.4 小时前
LeetCode 1419 数青蛙:状态模拟求最少青蛙数量|Java 题解
java·算法·leetcode
acd120094 小时前
线上偶发 499 错误,并非后端服务异常
算法
Nil2084 小时前
leetcode 45跳跃游戏Ⅱ
算法·leetcode·游戏
小蒋观天下5 小时前
端侧大模型在安防摄像头部署实操(下篇)|模型量化、推理加速、视频接入与量产调优
大数据·人工智能·算法·安全·机器学习·计算机视觉·ai大模型
sinat_286945195 小时前
大模型推理:部署方式与性能优化思路
人工智能·算法·缓存·chatgpt·性能优化
longlongzihan5 小时前
LeetCode 283. 移动零:从辅助数组到双指针原地算法
c++·算法·leetcode