单调栈总结

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

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

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 
相关推荐
kolaseen17 分钟前
tensorflow同步机制
人工智能·python·深度学习·机器学习·tensorflow
小跑遨游宇宙21 分钟前
Windows10安装cuda11.3.0+cudnn8.5.0,以及创建conda虚拟环境(pytorch)
pytorch·python·conda
一个很帅的帅哥29 分钟前
mac python安装库的问题——以requests为例
chrome·python·macos
zbdx不知名菜鸡1 小时前
深度学习参数管理
python·深度学习·机器学习
音程1 小时前
一次使用threading.Thread来实现Pytorch多个模型并发运行的失败案例
人工智能·pytorch·python
凯子坚持 c2 小时前
【机器学习】--- 决策树与随机森林
python·决策树·随机森林·机器学习
x-cmd2 小时前
x-cmd pkg | bat: cat 命令现代化替代品,终端用户必备工具
运维·python·rust·终端·命令行·bat·cat
计算机编程-吉哥2 小时前
计算机毕业设计 基于Python的校园个人闲置物品换购平台 闲置物品交易平台 Python+Django+Vue 前后端分离 附源码 讲解 文档
python·django·毕业设计·毕业论文·计算机毕业设计·计算机毕业设计选题·闲置物品交易
爱技术的小伙子2 小时前
【30天玩转python】使用第三方库(如 NumPy、Pandas)
python·numpy·pandas
繁依Fanyi2 小时前
828华为云征文|华为Flexus云服务器打造《我的世界》游戏服务器
java·服务器·开发语言·python·算法·华为·华为云