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_872418787 小时前
算法入门:并查集(Disjoint Set / Union-Find):连通性问题的利器
算法
luj_17687 小时前
R语言生态优势与学习曲线分析
c语言·开发语言·网络·经验分享·算法
计算机安禾7 小时前
【算法分析与设计】第36篇:计算几何基础:凸包问题的分治与扫描线解法
大数据·人工智能·算法·机器学习·剪枝
货拉拉技术7 小时前
飞速发展的计算机视觉
人工智能·算法
gf13211118 小时前
python_获取飞书卡片交互和审批任务状态变更事件信息
python
ss2738 小时前
ai编程Trae cn生成图书管理系统(1)
java·数据库·spring boot·python·flask·fastapi
如竟没有火炬8 小时前
寻找峰值——二分
java·开发语言·数据结构·python·算法·散列表
noipp8 小时前
推荐题目:洛谷 P1115 最大子段和
算法
Lumbrologist8 小时前
【C++】零基础入门 · 第 17 节:多线程编程基础
java·c++·算法
前端与小赵8 小时前
Python 模块导入全解析,从基础语法到循环导入破解
python