两部分:先记录到目前为止的最小购入价格,当后一天的价格大于购入价格时售出,如果说后一天的价格低于前一天,那么就在后一天购入,以此遍历。
class Solution {
public:
int maxProfit(vector<int>& prices) {
int sum = 0;
int min = prices[0]; // 标记购入价格
for(int i=1;i<prices.size();i++){
// 找到一天比购入价格大的出售价格
if(min<prices[i]){
sum+=prices[i]-min;
min = prices[i];
}else{
// 今天价格比前一天少时,那么将今天的价格标记为出售价格
min = prices[i];
}
}
return sum;
}
};