python:
class Solution: def maxProfit(self, prices): """ :type prices: List[int] :rtype: int """ if prices == []: return 0 ans = 0 mmin = prices[0] for i in range(len(prices)): if i < len(prices)-1: mmin = min(mmin,prices[i]) if prices[i+1] < prices[i]: ans += prices[i] - mmin mmin = prices[i+1] if i == len(prices) - 1: ans += prices[i] - mmin if prices[i]>mmin else 0 return ans
c++:
class Solution { public: int maxProfit(vector<int>& prices) { if(prices.size()==0) return 0; int ans = 0; int mmin = prices[0]; for(int i=0;i<prices.size();i++){ if(i<prices.size()-1){ mmin = min(mmin,prices[i]); if(prices[i+1]<prices[i]){ ans += prices[i] - mmin; mmin = prices[i+1]; } } else if(i==prices.size()-1) ans += prices[i] - mmin; } return ans; } };