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
相关推荐
星期天22 分钟前
【无标题】
数据结构·c++·算法
Python大数据分析@17 分钟前
数据分析为什么常用Jupyter而不是直接使用Python脚本或Excel?
python·jupyter·数据分析
老李四25 分钟前
Java 内存分配与回收策略
java·jvm·算法
一株菌子29 分钟前
10.9总结
开发语言·python
o***Z44842 分钟前
Python包管理工具
开发语言·python
做怪小疯子1 小时前
LeetCode 热题 100——普通数组——除自身以外数组的乘积
数据结构·算法·leetcode
虹科网络安全1 小时前
艾体宝干货 | Redis Python 开发系列#4 保证原子性与性能
redis·python·junit
G***T6911 小时前
Python混合现实案例
python·pygame·mr
稚辉君.MCA_P8_Java2 小时前
DeepSeek Java 插入排序实现
java·后端·算法·架构·排序算法
池塘的蜗牛2 小时前
NR系统相位补偿的原因与原理
算法