股票的最大利润
程序员文章站
2022-07-12 08:55:14
...
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。
def maxProfit(prices):
if not prices or len(prices)<2:
return 0
min_p = prices[0]
maxDiff = prices[1]-min_p
for i in range(2,len(prices)):
if prices[i-1]<min_p:
min_p = prices[i-1]
if prices[i]-min_p>maxDiff:
maxDiff = prices[i]-min_p
if maxDiff<0:
return 0
return maxDiff
动态规划
class Solution(object):
def maxProfit(self, prices):
min_p, max_p = 99999, 0
for i in range(len(prices)):
min_p = min(min_p, prices[i])
max_p = max(max_p, prices[i]-min_p)
return max_p
上一篇: 最长公共子序列(动态规划)
下一篇: 股票的最大利润