代码:
class Solution {
public:
int maxProfit(vector<int>& prices) {
int ans=0;
int i=1;
while(i<prices.size()){
while(i<prices.size()&&prices[i]<=prices[i-1]) //注意这里要取等,不然可能无限循环
i++;
int v=i-1;
while(i<prices.size()&&prices[i]>=prices[i-1])//注意这里要取等,不然可能无限循环
i++;
int p=i-1;
if(v<prices.size()&&p<prices.size())
ans+=prices[p]-prices[v];
}
return ans;
}
};
贪心算法:
class Solution {
public:
int maxProfit(vector<int>& prices) {
int ans=0;
for(int i=1;i<prices.size();i++)
if(prices[i]>prices[i-1])
ans+=prices[i]-prices[i-1];
return ans;
}
};