双指针,遇到比left位置更小的值,就把left移到那里。
class Solution { public: int maxProfit(vector<int>& prices) { int len = prices.size(); int left = 0, right = 1, maxPro = 0; while(right < len) { maxPro = max(maxPro, prices[right] - prices[left]); if(prices[right] < prices[left]) left = right; right++; } return maxPro; } };