- 题目要求:
-
思路:
- 维护一个 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