单调栈总结

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

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

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 
相关推荐
天才测试猿12 分钟前
2026全新软件测试面试八股文【含答案+文档】
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
TonyLee01714 分钟前
python深拷贝与浅拷贝机制
python
用户83562907805126 分钟前
如何将 Python 列表高效导出为 Excel 文件
后端·python
安娜的信息安全说44 分钟前
LangGraph:构建智能工作流的新方式
python·ai·langgraph
爱吃泡芙的小白白1 小时前
如何在现有配置好环境的Pycharm中安装jupyterlab这个工具
ide·python·pycharm·notebook·虚拟环境·jupyterlab
六毛的毛2 小时前
比较含退格的字符串
开发语言·python·leetcode
小鸡吃米…2 小时前
机器学习 - Python 库
人工智能·python·机器学习
xingzhemengyou12 小时前
Python GUI之tkinter-基础控件
开发语言·python
在屏幕前出油2 小时前
Python面向对象编程基础——类、实例对象与内存空间
开发语言·python
天天进步20152 小时前
如何通过 Py_Initialize 实现 C++ 对 Python 的嵌入调用
python