当前位置: 代码迷 >> 综合 >> leetcode练习题 best-time-to-buy-and-sell-stock-iii
  详细解决方案

leetcode练习题 best-time-to-buy-and-sell-stock-iii

热度:2   发布时间:2023-12-15 10:04:44.0

解题思路

参考了别人的解题思路,设置四个变量,分别为第一次购入需要花的钱、第一次交易赚的钱、第二次购入后剩余的钱、第二次交易后赚的总利润。

代码

#include<algorithm>
class Solution {
public:int maxProfit(vector<int> &prices) {int buy1 = INT_MIN;int sell1 = 0;int buy2 = INT_MIN;int sell2 = 0;for(int i = 0;i < prices.size();i++){buy1 = max(buy1,-prices[i]);//买入要花的少,选负的最少的sell1 = max(sell1,buy1 + prices[i]);//第一次交易赚的钱buy2 = max(buy2,sell1 - prices[i]);//用第一次的利润 - 第二次花的钱 = 剩余的钱sell2 = max(sell2,buy2 + prices[i]);//第二次交易之后的利润}return sell2;}
};
  相关解决方案