#122 买卖股票的最佳时机 II(贪心算法)
122. 买卖股票的最佳时机 II - 力扣(LeetCode)
问题转移:df[i]为i-1购入i卖出获得的净收益,df[0]=0。考虑连续盈利情况,例如1买2卖,2卖3卖,等同于1买3卖,因此结果不变。
描述转移后的问题:如何在一定时期内,进行尽可能多的盈利行为。
添加虚拟节点profits=0作为问题的起点。
贪心选择:由于行为按时间索引排序,顺序向后寻找到的第一个盈利行为作为最优选择。
子问题:保证非空子问题Sk为k后的其他行为。
class Solution {
public:
int maxProfit(vector<int>& prices) {
int profits=0;
int size=prices.size();
for(int i=1;i<size;i++){
int daily_p=prices[i]-prices[i-1];
if(daily_p>0) profits+=daily_p;
}
return profits;
}
};