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

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


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

解题代码C++:

cpp 复制代码
class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int n = prices.size();
        if (n == 0) return 0;
        vector<vector<int>> dp(n, vector<int>(4, 0));
        dp[0][0] -= prices[0]; // 持股票
        for (int i = 1; i < n; i++) {
            dp[i][0] = max(dp[i - 1][0], max(dp[i - 1][3] - prices[i], dp[i - 1][1] - prices[i]));
            dp[i][1] = max(dp[i - 1][1], dp[i - 1][3]);
            dp[i][2] = dp[i - 1][0] + prices[i];
            dp[i][3] = dp[i - 1][2];
        }
        return max(dp[n - 1][3], max(dp[n - 1][1], dp[n - 1][2]));
    }
};

题目链接/文章讲解/视频讲解:
https://programmercarl.com/0309.最佳买卖股票时机含冷冻期.html



二、714.买卖股票的最佳时机含手续费

解题代码C++:

cpp 复制代码
class Solution {
public:
    int maxProfit(vector<int>& prices, int fee) {
        int n = prices.size();
        vector<vector<int>> dp(n, vector<int>(2, 0));
        dp[0][0] -= prices[0]; // 持股票
        for (int i = 1; i < n; i++) {
            dp[i][0] = max(dp[i - 1][0], dp[i - 1][1] - prices[i]);
            dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] + prices[i] - fee);
        }
        return max(dp[n - 1][0], dp[n - 1][1]);
    }
};

题目链接/文章讲解/视频讲解:
https://programmercarl.com/0714.买卖股票的最佳时机含手续费(动态规划).html

相关推荐
黄卷青灯778 分钟前
标定系数为什么会存储在相机模组里面,在标定的时候,算法是在割草机的X3板上运行的啊?
数码相机·算法·相机内参
螺丝钉的扭矩一瞬间产生高能蛋白25 分钟前
PID算法基础知识
算法
HVACoder1 小时前
复习下线性代数,使用向量平移拼接两段线
c++·线性代数·算法
爱coding的橙子1 小时前
每日算法刷题Day77:10.22:leetcode 二叉树bfs18道题,用时3h
算法·leetcode·职场和发展
Swift社区1 小时前
LeetCode 404:左叶子之和(Sum of Left Leaves)
算法·leetcode·职场和发展
南枝异客2 小时前
查找算法-顺序查找
python·算法
QuantumLeap丶2 小时前
《数据结构:从0到1》-06-单链表&双链表
数据结构·算法
李牧九丶2 小时前
从零学算法59
算法
一匹电信狗2 小时前
【C++】手搓AVL树
服务器·c++·算法·leetcode·小程序·stl·visual studio
月疯2 小时前
离散卷积,小demo(小波信号分析)
算法