Day58力扣打卡

打卡记录

下一个更大元素 IV(单调栈 x2)

链接

python 复制代码
class Solution:
    def secondGreaterElement(self, nums: List[int]) -> List[int]:
        ans = [-1] * len(nums)
        s = []
        t = []
        for i, x in enumerate(nums):
            while t and nums[t[-1]] < x:
                ans[t.pop()] = x  # t 栈顶的下下个更大元素是 x
            j = len(s) - 1
            while j >= 0 and nums[s[j]] < x:
                j -= 1  # s 栈顶的下一个更大元素是 x
            t += s[j + 1:]  # 把从 s 弹出的这一整段元素加到 t
            del s[j + 1:]  # 弹出一整段元素
            s.append(i)  # 当前元素(的下标)加到 s 栈顶
        return ans
相关推荐
240291003374 分钟前
自编码器(AE)与变分自编码器(VAE)-- 认识篇
python·神经网络·机器学习
敲代码的哈吉蜂4 分钟前
haproxy的算法——混合算法
linux·运维·服务器·算法
我命由我123456 分钟前
Photoshop - Photoshop 工具栏(70)以快速蒙版/标准模式编辑
学习·ui·职场和发展·求职招聘·职场发展·学习方法·photoshop
追随者永远是胜利者8 分钟前
(LeetCode-Hot100)283. 移动零
java·算法·leetcode·职场和发展·go
We་ct9 分钟前
LeetCode 129. 求根节点到叶节点数字之和:两种解法详解(栈+递归)
前端·算法·leetcode·typescript
郝学胜-神的一滴14 分钟前
Python中的“==“与“is“:深入解析与Vibe Coding时代的优化实践
开发语言·数据结构·c++·python·算法
香芋Yu25 分钟前
【大模型面试突击】06_预训练与微调
面试·职场和发展
流云鹤25 分钟前
动态规划01
算法·动态规划
一个处女座的程序猿O(∩_∩)O34 分钟前
Python多重继承详解
开发语言·python