题目描述
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
解题思路
记住一点就可,只要第i+1天比第i天的股价高,那我就在第i天购买,第i+天卖出。(可以同一天卖出再购买,)
代码
class Solution {
public:
int maxProfit(vector<int>& prices) {
// 关键是可以第一天买 第二天就卖
// 最大利益 就是要看在哪里买 哪里买
//哪里买 一跌我就买 同时i+1 还要涨
int sum = 0; // 总收入
int n = prices.size();
for (int i = 0; i < n - 1; ++i) {
if (prices[i+1] > prices[i]) { // 只要能涨就买 然后第二天就卖
sum += prices[i+1] - prices[i];
}
}
return sum;
}
};
继续努力,未来是星辰大海!