LeetCode-Best Time to Buy and Sell Stock With Cooldown

buy数组是当天买入股票可以得到的最大值(花钱的最小值),sell数组是当天卖出股票可以得到的最大值,因为要有交易费,所以在卖出的时候需要扣掉交易费再去对比。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
public:
int maxProfit(vector<int>& prices, int fee) {
int size=(int)prices.size();
if(size<=1) return 0;
int* buy=new int[size];
int* sell=new int[size];
buy[0]=-prices[0];
sell[0]=0;
for(int i=1;i<size;i++){
buy[i]=max(buy[i-1],sell[i-1]-prices[i]);
sell[i]=max(sell[i-1],buy[i-1]+prices[i]-fee);
}
return sell[size-1];
}
};