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
相关推荐
码码哈哈0.09 分钟前
LangChain 快速入门(从0到可用)
开发语言·python·langchain
_小草鱼_15 分钟前
【搜索与图论】DFS算法(深度优先搜索)
算法·深度优先·图论·回溯·递归
2301_7765087219 分钟前
用Python生成艺术:分形与算法绘图
jvm·数据库·python
熊文豪23 分钟前
Java 入门指南
开发语言·python
敲代码的嘎仔26 分钟前
Java后端面试——SSM框架面试题
java·面试·职场和发展·mybatis·ssm·springboot·八股
带娃的IT创业者30 分钟前
WeClaw 日志分析实战:如何从海量日志中快速定位根因?
运维·python·websocket·jenkins·fastapi·架构设计·实时通信
I_LPL43 分钟前
hot100 栈专题
算法·
2401_879503411 小时前
C++中的观察者模式变体
开发语言·c++·算法
阿贵---1 小时前
C++中的备忘录模式
开发语言·c++·算法
wh_xia_jun1 小时前
MODNet 本地抠图项目指南
python