leetcode 122.买卖股票的最佳时机Ⅱ
与Ⅰ题的思路类似。用O(n)的时间遍历一遍把任务完成。
自我感觉比Ⅰ题要简单,考虑把数组元素表现成折线图形式(就像股票的价格波动图),只要把所有上升的差值求和就是答案。
代码如下
1 class Solution { 2 public: 3 int maxProfit(vector<int>& prices) { 4 if(prices.size()<2) return 0; 5 int frontMin=prices[0],profitSum=0; 6 for (int i = 1; i < prices.size(); ++i) { 7 if(prices[i]>frontMin){ 8 profitSum+=(prices[i]-frontMin); 9 frontMin=prices[i]; 10 } else if (prices[i]<frontMin){ 11 frontMin=prices[i]; 12 } 13 } 14 return profitSum; 15 } 16 };

浙公网安备 33010602011771号