思路:
贪心,两两比较,只要递增,就可以加进收入中。
需要简单证明一下贪心的正确性:为什么两两比较就可以?如果隔很多天差值很大呢?
假设给定:a, b, c,分别代表第1天,第2天,第3天股票价格,
c - a = 100;
if b <= c ,成立;
if b > c,会将b-a计入,相等于两两比较,成立。
class Solution {
public:
int maxProfit(vector<int>& prices) {
int size = prices.size();
int diff, sum = 0;
for(int i = 1; i < size; ++i) {
diff = prices[i] - prices[i-1];
if(diff > 0) {
sum += diff;
}
}
return sum;
}
};
本文介绍了一种通过贪心算法实现的股票交易策略,该策略通过比较连续两天的股价变化来决定是否进行交易以获得最大收益。文中给出了具体的C++实现代码,并通过实例解释了算法的正确性和有效性。
1057

被折叠的 条评论
为什么被折叠?



