Say you have an array for which the ith element is the price of a given stock on day i.
Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie, buy one and sell one share of the stock multiple times). However, you may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).
解題思路:
題目參考 Q121
這題是可以多次買入多次賣出,但是比 Q121 還要簡單闪湾。只要一漲價冲甘,就賣出即可。
Python實現(xiàn):
class Solution:
def maxProfit(self, prices):
"""
:type prices: List[int]
:rtype: int
"""
maxP = 0 # 最大利潤
for i in range(len(prices) - 1):
if prices[i] < prices[i+1]: # 漲價就賣出途样,同時累加利潤
maxP += prices[i+1] - prices[i]
return maxP
a = [7,2,5,3,6,4,1,5,6,4,0]
b = Solution()
print(b.maxProfit(a)) # 11 # (2->5) + (3->6) + (1->5) + (5->6)