代码随想录算法训练营第五十三天|309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费

309. 买卖股票的最佳时机含冷冻期

cpp 复制代码
int maxProfit(int* prices, int pricesSize){
    int len = pricesSize;
    int dp[len][4];
    dp[0][0] = -prices[0];
    dp[0][1] = 0;
    dp[0][2] = 0;
    dp[0][3] = 0;
    for (int i = 1; i < pricesSize; i++)
    {
        dp[i][0] = fmax(dp[i-1][0], fmax(dp[i-1][1] - prices[i], dp[i-1][3] - prices[i]));
        dp[i][1] = fmax(dp[i-1][1], dp[i-1][2]);
        dp[i][2] = dp[i-1][0] + prices[i];
        dp[i][3] = dp[i-1][2];
    }
    return fmax(dp[len - 1][3], fmax(dp[len - 1][1], dp[len - 1][2]));
}

714. 买卖股票的最佳时机含手续费
相对122.买卖股票的最佳时机II ,本题只需要在计算卖出操作的时候减去手续费就可以了,代码几乎是一样的

cpp 复制代码
int maxProfit(int* prices, int pricesSize, int fee){
    int len = pricesSize;
    int dp[2][2];
    dp[0][0] = -prices[0];
    dp[0][1] = 0;
    for (int i = 1; i < len; i++)
    {
        dp[i%2][0] = fmax(dp[(i-1)%2][0], dp[(i-1)%2][1]-prices[i]);
        dp[i%2][1] = fmax(dp[(i-1)%2][1], prices[i] + dp[(i-1)%2][0] - fee);
    }
    return dp[(len-1)%2][1];
}
相关推荐
laocui128 分钟前
Σ∆ 数字滤波
人工智能·算法
CodeWithMe41 分钟前
【C/C++】namespace + macro混用场景
c语言·开发语言·c++
yzx99101343 分钟前
Linux 系统中的算法技巧与性能优化
linux·算法·性能优化
全栈凯哥1 小时前
Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解
java·算法·leetcode·链表
全栈凯哥1 小时前
Java详解LeetCode 热题 100(27):LeetCode 21. 合并两个有序链表(Merge Two Sorted Lists)详解
java·算法·leetcode·链表
SuperCandyXu1 小时前
leetcode2368. 受限条件下可到达节点的数目-medium
数据结构·c++·算法·leetcode
Humbunklung2 小时前
机器学习算法分类
算法·机器学习·分类
Ai多利2 小时前
深度学习登上Nature子刊!特征选择创新思路
人工智能·算法·计算机视觉·多模态·特征选择
lyh13442 小时前
【SpringBoot自动化部署方法】
数据结构
蒟蒻小袁2 小时前
力扣面试150题--被围绕的区域
leetcode·面试·深度优先