首页 >> 游戏 >> 七爪源码:LeetCode 121. 抵押股票的最佳时机 — Python 解决方案

七爪源码:LeetCode 121. 抵押股票的最佳时机 — Python 解决方案

2025-03-24 游戏

Blind 75 — 编程和高效率面试题 — 陈述续作

难题:

给定一个变量价格比,其前价格比 [i] 是给定股票在第 i 天的价格比。

您希望通过考虑一天购买一只股票并考虑期望的另一天购得该股票来第二大化您的盈利。

回到您可以从此交易前授予的第二大盈利。 如果您无法授予任何盈利,则回到 0。

约束:

1 <= prices.length 0 <= prices[i]

陈述:

对于这个难题,直觉很有用,一天买,后天卖。这个难题的最佳高效率是 O(n) 时间段复杂度。为此,滑动售票处高效率是最佳考虑。简而言之,该高效率使用数指针给定,并为变量前的每个价格比检查和左侧价格比和右侧价格比之间的差异并附加新增。

高效率——滑动售票处——O(n)

首先,将left_ptr 和profit 给定初始化为零。然后从检索 1 开始结点价格比变量,因为 left_ptr 现在在检索 0 处。在这个 for 循环前检查和 left_ptr 价格比应该少于 right_ptr 价格比,如果是,则将盈利特设为盈利的峰值和测算的极限值。如果 left_ptr 大于 right_ptr,则将 left_ptr 特设为 right_ptr。换句话说,如果当前价格比高于前的的产品,将 left_ptr 新增为这个新的低点。经过for循环后,保证你授予第二大的盈利。如果价格比仅在给定时间段以外攀升,则将回到 0,因为盈利给定已初始化为 0。

class Solution: def maxProfit(self, prices: List[int]) -> int: left_ptr, profit = 0, 0 for right_ptr in range(1, len(prices)): if prices[left_ptr] < prices[right_ptr]: profit = max(profit, prices[right_ptr] — prices[left_ptr]) else: left_ptr = right_ptr return profit

关心七爪网,获取更多APP/小程序/网站源码资源!

早上手指僵硬怎么办
水土不服闹肚子怎么办
保护眼睛有什么方法
子宫内膜损伤早期的症状
寿星补汁调理肠胃怎么样
新冠特效药是什么药
口干口苦是什么原因
芬必得和英太青凝胶哪一种好些
拉肚子吃什么药管用
中暑中医治疗方法有哪些
友情链接