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
相关推荐
2401_8331977314 分钟前
C++代码切片分析
开发语言·c++·算法
月落归舟14 分钟前
每日算法题 14---14.环形链表
数据结构·算法·链表
m0_6214385215 分钟前
实时音频处理C++实现
开发语言·c++·算法
weixin_4219226918 分钟前
模板代码性能测试
开发语言·c++·算法
Red丶哞23 分钟前
内网自建Postfix使用Python发送邮件
开发语言·python
Liu6288829 分钟前
C++中的模板方法模式
开发语言·c++·算法
rebekk32 分钟前
pytorch custom op的简单介绍
人工智能·pytorch·python
qq_3349031536 分钟前
高性能网络协议栈
开发语言·c++·算法
chushiyunen38 分钟前
uv使用笔记(python包的管理工具)
笔记·python·uv
曲幽38 分钟前
FastAPI状态共享秘籍:别再让中间件、依赖和路由“各自为政”了!
python·fastapi·web·request·state·depends·middleware