代码随想录算法训练营第五十三天|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];
}
相关推荐
GoAI4 小时前
DeepSeek Harness Memory (一)主流记忆插件总结
后端·算法·面试
Pniubi4 小时前
力扣54.螺旋矩阵
算法·leetcode·矩阵
Zwawa5 小时前
用两个按键做一个OLED菜单:先把选择和执行分开
c语言·单片机·嵌入式
choumou_M7 小时前
算法_1:由浅入深学习快速排序QuickSort
学习·算法·排序算法
Coder_Shenshen8 小时前
罗克韦尔ACD工程归档离线变量树解析
算法·c#
心仪久了会沦陷9 小时前
C语言数据结构入门——树与二叉树详解:概念、堆实现与链式遍历
c语言·数据结构·算法
小此方9 小时前
[算法实战论:动态规划]背包问题概念,01不满背包问题,01满背包问题,背包问题的滚动数组空间优化
算法·动态规划
悠仁さん10 小时前
【C++】哈希表
c++·算法·散列表
码少女11 小时前
数据结构——图的基础
数据结构