假设你有一个数组,其中第i个元素表示某只股票在第i天的价格。
设计一个算法来寻找最大的利润。你可以完成任意数量的交易(例如,多次购买和出售股票的一股)。但是,你不能同时进行多个交易(即,你必须在再次购买之前卖出之前买的股票)。
class Solution {
public:
/**
*
* @param prices int整型vector
* @return int整型
*/
int maxProfit(vector<int>& prices) {
// write code here
// 取数组的长度
int length = prices.size();
// 初始化一个长度相同的数组,值全为零
vector<int> change(length, 0);
// 最大利润,即最低买,最高卖
int maxProfit = 0;
for(int i = 1; i < length; i++){
// 记录所有波动
change[i] = prices[i] - prices[i - 1];
// 累加所有涨的,即为利润
if(change[i] > 0){
maxProfit += change[i];
}
}
return maxProfit;
}
};