121买卖股票最佳时机

描述

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。

返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。

示例 1:

输入:[7,1,5,3,6,4]
输出:5

示例 2:

输入:prices = [7,6,4,3,1]
输出:0

思路

每天遍历过去的时候,如果发现是最低的,那就假设当天买进,一般情况下,每天都计算按照之前最低买进的计算最大利润。

复杂度O(n)

class Solution(object):
    def maxProfit(self, prices):
        """
        :type prices: List[int]
        :rtype: int
        """
        min_p = prices[0]
        max_pro = 0
        for p in prices:
            if p < min_p:
                min_p = p
            elif p - min_p > max_pro:
                max_pro = p - min_p
        return max_pro

   转载规则


《121买卖股票最佳时机》 wangyixin-tom 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录