• 题目要求:

image.png

  • 思路:

    • 维护一个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

Adrianna
1 声望2 粉丝