假设您有一个数组,其中第i个元素是第i天给定股票的价格。
设计算法以找到最大利润。 您可以根据需要完成尽可能多的交易(即,多次买入并卖出一股股票)。 但是,您可能不会同时进行多笔交易(即,您必须在再次购买之前卖出股票)
思路:根据题意,相当于只要有利益就卖出股票,不断累积利益,直至最后的结果;
class Solution {
public:
int maxProfit(vector<int> &prices) {
if(prices.size()==0)
return 0;
int res0=0,res1=0,min=prices[0];
for(int i=1;i<prices.size();i++)
{
if(prices[i]>min)
{
res0=prices[i]-min;
res1+=res0;
min=prices[i];
}
else
min=prices[i];
}
return res1;
}
};