122. Best Time to Buy and Sell Stock II
122. Best Time to Buy and Sell Stock II
這個題目是每天都可以買賣股票,但是最多只能同時持有一股的股票要買之前要先賣掉股票。
class Solution:
def maxProfit(self, prices: List[int]) -> int:
if len(prices) < 2:
return 0
buys = [float('-inf')] * len(prices)
sells = [0] * len(prices)
buys[0] = -prices[0]
for i in range(1, len(prices)):
buys[i] = max(buys[i-1], sells[i-1] - prices[i])
sells[i] = max(sells[i-1], buys[i-1] + prices[i])
return sells[-1]
class Solution:
def maxProfit(self, prices: List[int]) -> int:
if len(prices) < 2:
return 0
buys = [float('-inf')] * len(prices)
sells = [0] * len(prices)
for i in range(len(prices)):
if i == 0:
buys[i] = max(buys[i], 0 - prices[i])
else:
buys[i] = max(buys[i-1], sells[i-1] - prices[i])
sells[i] = max(sells[i-1], buys[i-1] + prices[i])
return sells[-1]