七爪源码: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-09投资者提问:董秘您好!脱口而出日前公司公告关于与南非 Emfuleni 市政府...
- 05-09北京台央视:颂出关于春天、关于城市的赞美诗
- 05-09A股市场本周行情预判及重大事件提醒
- 05-09自然惨剧动图,看到第3张就受不了了!
- 05-09博创科技(300548.SZ)预估2021年度归母净利同比增长63.92%-97.83%
- 05-09七大卫视大年初一拼收视,北京卫视阵容豪华,东方卫视看点足
- 05-09劝告大家:大扫除时家里这些物品,该扔就扔,不要舍不得
- 05-09日出东方(603366.SH):董事、常务董事成彦龙先生不幸去世
- 05-0947岁林志玲刊文宣布生子,一家三口同出镜,结婚两年终得子
- 05-09长三角(沪浙皖)联盟地区药品比较大带量采购正式来袭