单调栈总结

自底向上的单调递减栈,一般用来寻找下一个更大的元素。

常见做法是从后往前遍历数组,栈顶元素如果小于当前元素就出栈,保持单调性

python 复制代码
def nextGreaterElements(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        n = len(nums)
        stack = []
        res = [-1]*n 
        for i in range(n-1,-1,-1):
            while stack and stack[-1] <= nums[i]:
                stack.pop()
            if stack:
                res[i] = stack[-1]
            stack.append(nums[i])
        return res

自底向上的单调递增栈,一般用来寻找前一个更小的元素。

常见做法是从前往后遍历数组,栈顶元素如果大于当前元素就出栈,保持单调性

python 复制代码
def lastMinerElements(self, nums):
res = [-1]*n 
stack = []
for i in range(len(nums)):
    while stack and  nums[i] < stack[-1]:
        stack.pop()
    if stack:
        res[i] = stack[-1]
    stack.append(nums[i)
return res 
相关推荐
童园管理札记9 分钟前
从政策驱动到课堂落地:2026年“人工智能+教育”全景解读与技术实践指南
人工智能·python·深度学习·职场和发展·学习方法
陈年老古董10 分钟前
微博情感分析项目学习笔记
笔记·python·学习·机器学习·项目
10mAh13 分钟前
【Python】从零开始做一个重复文件查找工具——找出改名副本,生成核对报告
python
用户03321266636715 分钟前
使用 Python 轻松合并多个 PowerPoint 文件【代码详解】
python
Xiu Yan27 分钟前
Python 数据分析:Pandas DataFrame 零基础入门教程
python·jupyter·pycharm·numpy·pandas
别动我齐刘海33 分钟前
ROS2 Jazzy + C++ 实战路线——ros2_control
c++·人工智能·python·opencv·机器学习·机器人·github
把头塞进显示器1 小时前
电商平台-测试报告
python·selenium·pytest
ShyanZh1 小时前
【Python3基础】01-Python 环境与开发工具
python
醇氧1 小时前
Git 合并冲突与`__pycache__` 的恩怨情仇
python·numpy·fastapi
ShyanZh2 小时前
【Python3基础】02-输入输出与程序运行
python