单调栈及其对应算法题

本文介绍了如何使用单调栈解决寻找数组中下一个大于或小于指定值元素的问题。通过维护一个单调栈,可以有效地处理这类问题。文章列举了相关算法题目的解题技巧,包括保持栈的单调性和根据条件判断入栈和出栈操作。尽管不同题目可能略有差异,但基本思路是一致的。
摘要由CSDN通过智能技术生成

单调栈的应用
求解下一个大于x元素或者是小于x元素的位置。

在这里插入图片描述
在这里插入图片描述
在这个过程中,维护的是一个单调栈。

算法题目:
在这里插入图片描述
稍加分析一下就会发现,和上面上说的差不多。
做题技巧就是:
1、始终要维护一个单调栈,具体看其是递增还是递减;
2、分析判断条件,判断出栈和入栈;

class Solution {
    public int[] dailyTemperatures(int[] temperatures) {
        //单调栈   详细版
        int[] result = new int[temperatures.length];
        Stack<Integer> st = new Stack<>();

        st.push(0);  //栈中存放的是temperatures的下标
        for (int i = 1; i < temperatures.length; i++) {
            if (temperatures[i] < temperatures[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兴涛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值