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
相关推荐
炽烈小老头1 分钟前
【 每天学习一点算法 2026/03/30】跳跃游戏
学习·算法
zero15972 分钟前
Python 8天极速入门笔记(大模型工程师专用):第三篇-列表与字典(Python核心数据结构,大模型必备)
开发语言·python·ai编程
书到用时方恨少!7 分钟前
Python 零基础入门系列(十一):模块和包
开发语言·python
阿kun要赚马内15 分钟前
Python面向对象编程:封装性
开发语言·python
Yao.Li16 分钟前
PVN3D TensorRT 环境配置指南
人工智能·python·具身智能
wuweijianlove18 分钟前
算法性能预测的统计模型与参数敏感性分析的技术6
算法
Just right20 分钟前
重学算法 数组 LC27移除元素
数据结构·算法
郝学胜-神的一滴20 分钟前
巧解括号序列分解问题:栈思想的轻量实现
开发语言·数据结构·c++·算法·面试
zzwq.24 分钟前
Python面向对象编程(OOP)基础详解
python
计算机安禾29 分钟前
【数据结构与算法】第15篇:队列(二):链式队列的实现与应用
c语言·开发语言·数据结构·c++·学习·算法·visual studio