欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

股票的最大利润

程序员文章站 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