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
相关推荐
C++ 老炮儿的技术栈1 小时前
什么是通信规约
开发语言·数据结构·c++·windows·算法·安全·链表
GIS之路2 小时前
GDAL 实现矢量裁剪
前端·python·信息可视化
零小陈上(shouhou6668889)2 小时前
K-近邻算法 - lazy learning的代表
算法·近邻算法
学历真的很重要2 小时前
LangChain V1.0 Context Engineering(上下文工程)详细指南
人工智能·后端·学习·语言模型·面试·职场和发展·langchain
有一个好名字2 小时前
力扣-从字符串中移除星号
java·算法·leetcode
IT=>小脑虎2 小时前
Python零基础衔接进阶知识点【详解版】
开发语言·人工智能·python
智航GIS2 小时前
10.6 Scrapy:Python 网页爬取框架
python·scrapy·信息可视化
萧瑟其中~2 小时前
二分算法模版——基础二分查找,左边界查找与右边界查找(Leetcode的二分查找、在排序数组中查找元素的第一个位置和最后一个位置)
数据结构·算法·leetcode
码上就好ovo2 小时前
Atcoder Beginnner Contest 440
算法