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
相关推荐
覆东流4 分钟前
第1天:Python环境搭建 & 第一个程序
开发语言·后端·python
优家数科4 分钟前
精准预测:基于多维用水量的滤芯寿命预警算法
算法
脱氧核糖核酸__8 分钟前
LeetCode热题100——189.轮转数组(题解+答案+要点)
数据结构·c++·算法·leetcode
贾斯汀玛尔斯27 分钟前
每天学一个算法-快速排序(Quick Sort)
数据结构·算法
炽烈小老头29 分钟前
【每天学习一点算法 2026/04/16】逆波兰表达式求值
学习·算法
m0_7478545233 分钟前
如何为禁用按钮点击添加提示文案
jvm·数据库·python
优家数科40 分钟前
水质监测不准?解密云端 TDS 数据建模纠偏算法
算法
2301_803538951 小时前
CSS如何设计简洁的移动端底部固定导航_利用position-fixed实现
jvm·数据库·python
木井巳1 小时前
【递归算法】组合总和
java·算法·leetcode·决策树·深度优先·剪枝
vegetablec1 小时前
CSS如何制作卡片翻开呈现另一面的翻牌动画
jvm·数据库·python