代码随想录算法训练营第50天|123.买卖股票的最佳时机III、188.买卖股票的最佳时机IV

123.买卖股票的最佳时机III

题目描述:

给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。

设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。

注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。

期末考试周就直接贴代码了;

class Solution {
public:
    int maxProfit(vector& prices) {
        vector>dp(prices.size(),vector(5,0));
        dp[0][1]-=prices[0];
        dp[0][3]-=prices[0];
        for(int i=1;i

188.买卖股票的最佳时机IV

题目描述:

给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。

设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。

注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。

class Solution {
public:
    int maxProfit(int k, vector& prices) {
        vector>dp(prices.size(),vector(2*k+1,0));;
        for(int j=1;j<2*k;j+=2)
        {
            dp[0][j]-=prices[0];
        }
        for(int i=1;i

你可能感兴趣的:(算法)