题目
Say you have an array for which the ith element is the price of a given stock on day i.
Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie, buy one and sell one share of the stock multiple times). However, you may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).
翻译
假设你有一个数组,第i个元素表示第i天的股票价格
设计一个算法,计算出可以获得的最大收益。你可以进行尽可能多次的交易。但是,你不可以在同一时间进行多次交易。及必须在卖之前先买入。
思路
该题目是一道贪心的题目;
即将所有上升阶段的收益累计即可。
代码
class Solution {
public:
int maxProfit(vector<int>& prices) {
int res = 0;
for(int i = 1; i < prices.size(); i++){
res += max(prices[i] - prices[i-1], 0);
}
return res;
}
};