150. 买卖股票的最佳时机 II
给定一个数组 prices 表示一支股票每天的价格.
你可以完成任意次数的交易, 不过你不能同时参与多个交易 (也就是说, 如果你已经持有这支股票, 在再次购买之前, 你必须先卖掉它).设计一个算法求出最大的利润.
Code
def maxProfit(self, prices):
# write your code here
res=0
n=len(prices)
for i in range(0,n-1,1):
if prices[i+1]-prices[i]>0:
res=(prices[i+1]-prices[i])+res
return res
149. 买卖股票的最佳时机
假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润
Code
def maxProfit(self, prices):
# write your code here
n=len(prices)
dp=[[0] for _ in range(n+1)]
dp[0]=0
min_value=float('inf')
for i in range(1,n+1,1):
dp[i] = dp[i-1] #因为两数需要逐一比较
min_value = min(min_value, prices[i-1])
if min_value < prices[i-1]:
dp[i] = max(dp[i], prices[i-1]-min_value)
#选择了第i-1个,与未选择i-1个比大小
return dp[i]