题目链接:https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/description/
题意:简单来说就是算利润。
我是新开了一个数组,初始化为0。
先判断profit是否为0,如果为0就买进prices[i-1]
接着判断prices[i]和prices[i-1]的大小:
prices[i] > prices[i-1],那么以prices[i] 的价格卖掉prices[i-1];
prices[i] <= prices[i-1],那么就要取消买进的prices[i-1],所以当前profit要加回prices[i-1];
class Solution {
public:
int maxProfit(vector<int>& prices) {
int profit[prices.size()+5];
memset(profit,0,sizeof(profit));
int temp = 0;
for(int i = 1;i < prices.size();i++){
//判断有没有买进,没有就按前一个价格买进
if(profit[temp] == 0){
profit[temp] -= flag[i-1];
}
//亏本,取消前一个买进,把钱加回去
if(flag[i] <= flag[i-1]){
profit[temp] += flag[i-1];
}else{
//有利润,价格差即为利润
profit[temp] += flag[i];
//继续下一个买进
temp++;
}
}
for(int i = 0;i < prices.size()+5;i++){
int total += profit[i];
}
return total;
}
};