乐趣区

Leetcode121-买卖股票的最佳时机-Python实现

  • 题目要求:

  • 思路:

    • 维护一个 res 用来保存结果集,维护一个 mymin 用来保存当前的最小值
    • 遍历数组,如果当前元素减掉 mymin 大于当前的 res,把这个差值赋给 res,如果当前的元素比 mymin 还小,把当前元素的值赋给 mymin
    • 最后返回 res
  • 核心代码:
# 把第一个元素的值赋给 mymin,作为初始最小值
mymin = prices[0]
# 用来保存结果
res = 0
# 遍历数组
for i in range(len(prices)):
    # 如果当前元素减去前面的最小值大于 res
    if prices[i] - mymin > res:
        # 把这个值赋给 res
        res = prices[i] - mymin
    # 如果当前元素比之前遇到的所有元素的值都小,把这个值赋给 mymin
    if prices[i] < mymin:
        mymin = prices[i]
# 返回结果
return res

完整代码:

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        if not prices:
            return 0
        mymin = prices[0]
        res = 0
        for i in range(len(prices)):
            if prices[i] - mymin > res:
                res = prices[i] - mymin
            if prices[i] < mymin:
                mymin = prices[i]
        return res
退出移动版