这个题目就是贪心,求出在当前情况下,如何能够实现收益的最大化。
买入:不断找最小的时候去买入,直到没有更小的了。
买出:在买入的基础上不断去找最大的,直到没有更大的了。
所以我们就可以得到下面的代码实现,但是有一个越界的情况在比较后一个的时候会产生,所以我们需要在数组的后面再增加一个负数,能够达到在最后一天要把已经买了的股票要买出,也不会有越界的情况发生、
class Solution {
public:
int maxProfit(vector<int>& prices) {
int len = prices.size();
int money = 0;
int buy = -1;
prices.push_back(-1);
for(int i = 0; i < len; i++){
if(buy == -1 && prices[i] < prices[i + 1]){
buy = i;
continue;
}
if(buy != -1 && prices[i] > prices[i + 1]){
money += prices[i] - prices[buy];
buy = -1;
}
}
return money;
}
};