七爪源码: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/小程序/网站源码资源!
早上手指僵硬怎么办水土不服闹肚子怎么办
保护眼睛有什么方法
子宫内膜损伤早期的症状
寿星补汁调理肠胃怎么样
新冠特效药是什么药
口干口苦是什么原因
芬必得和英太青凝胶哪一种好些
拉肚子吃什么药管用
中暑中医治疗方法有哪些
相关阅读
- 05-092022年的农历2,5,9当月能“怀孕生子”的生肖
- 05-09“最强毒枭”阿尔邦:手上有5000条人命,其中包括三位总统
- 05-09中国恒大成立风险化解委员会,致力解决经营和公司财务问题
- 05-09性格好,却很容易不为重的星座,不够大气不够圆滑
- 05-09被拐24年的河南小男孩DNA比对成功,母亲:像做梦一样,28岁的孩子了
- 05-09A股迎降准利好:促使提振市场情绪,利好已被一定程度消化
- 05-09决裂门!湖人啊湖人,做的都坏事?
- 05-09中国浃金融(00952)授出6000万港元的贷款
- 05-0912月运势极好,桃花开真爱来,生活盼望发大财的三生肖
- 05-09小红书发表意见行政处罚:系因12月央视报道提及未成年信息审核漏放问题