2058. 找出临界点之间的最小和最大距离
题目链接 | 2058. 找出临界点之间的最小和最大距离 |
---|---|
思路 | 模拟 |
题解链接 | 一次遍历 + 常数空间 |
关键点 | 无 |
时间复杂度 | |
空间复杂度 |
代码实现:
class Solution: def nodesBetweenCriticalPoints(self, head: Optional[ListNode]) -> List[int]: min_dist = max_dist = -1 first = last = -1 pos = 0 cur = head while cur.next.next: x, y, z = cur.val, cur.next.val, cur.next.next.val if y > max(x, z) or y < min(x, z): if last != -1: dist = pos - last if min_dist == -1: min_dist = dist else: min_dist = min(min_dist, dist) max_dist = max(dist, pos - first) if first == -1: first = pos last = pos pos += 1 cur = cur.next return [min_dist, max_dist]
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!