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;
}
};