附上代码:
1 class Solution { 2 public: 3 int maxProfit(vector &prices) { 4 unsigned int len = prices.size(); 5 if (len == 0) return 0; 6 // ans: holds the total profit that has been earned 7 int ans = 0; 8 for (int i = 0; i < len; ) { 9 // buy: holds price of the ith day where 10 // i is the maximum index satisfing11 // prices[i-1] > prices[i] and prices[i] <= prices[i+1]12 int buy = prices[i++];13 while (i < len && prices[i] < buy) {14 buy = prices[i++];15 }16 if (i >= len) return ans;17 // sell: holds price of the ith day where18 // i is the maximum index satisfing19 // prices[i-1] < prices[i] and prices[i] >= prices[i+1]20 int sell = prices[i++];21 while (i < len && prices[i] > sell) {22 sell = prices[i++];23 }24 ans += (sell - buy);25 }26 27 return ans;28 }29 };