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 天前
东华OJ-进阶题-12-时间转换(C++)
开发语言·c++·算法
啊哈哈哈哈哈啊哈哈1 天前
cv实践——银行卡数字识别
python·opencv·计算机视觉
cyyt1 天前
深度学习周报(3.9~3.15)
算法
一直都在5721 天前
HashMap的扩容和迁移
算法·哈希算法
2401_889884661 天前
深入理解Python的if __name__ == ‘__main__‘
jvm·数据库·python
一叶落4381 天前
LeetCode 380. O(1) 时间插入、删除和获取随机元素【哈希表 + 动态数组 | C语言详解】
c语言·数据结构·c++·算法·leetcode·散列表
坚持学习前端日记1 天前
AgentAi视频模型开发对接部署使用
前端·人工智能·python·flask·音视频
酱紫学Java1 天前
数据安全基础:正则表达式 (Regex) 从入门到实战
python·正则表达式
xiaoye-duck1 天前
《算法题讲解指南:递归,搜索与回溯算法--二叉树中的深搜》--8.二叉树剪枝,9.验证二叉搜索树
c++·算法·深度优先·递归
飞Link1 天前
洞察数据的“分寸感”:深度解析对比学习(Contrastive Learning)
开发语言·python·学习·数据挖掘