zoukankan      html  css  js  c++  java
  • 单调栈问题总结

    单调栈主要回答这样的几种问题

    • 比当前元素更大的下一个元素
    • 比当前元素更大的前一个元素
    • 比当前元素更小的下一个元素
    • 比当前元素更小的前一个元素

    问题解决模板:

    stack<int> st;
    for(int i = 0; i < nums.size(); i++) {
    	while(!st.empty() && st.top() > nums[i]){
    		st.pop();
    	}
    	st.push(nums[i]);
    }
    

    可参考的题目: 

    序号          题目                                                             题解
    1              42. 接雨水(困难)                             暴力解法、优化、双指针、单调栈
    2            739. 每日温度(中等)                              暴力解法 + 单调栈
    3            496. 下一个更大元素 I(简单)                    暴力解法、单调栈
    4            316. 去除重复字母(困难)                            栈 + 哨兵技巧
    5            901. 股票价格跨度(中等)             「力扣」第 901 题:股票价格跨度(单调栈)
    6            402. 移掉K位数字
    7            581. 最短无序连续子数组

    8            239 滑动窗口的最大值

    9            84 柱状图中最大的矩形

  • 相关阅读:
    5(计算机网络)从物理层到MAC层
    3 (mysql实战) 事务隔离
    2 (mysql实战) 日志系统
    1 (msql实战) 基础架构
    498. (leetcode)对角线遍历
    图解jvm--(四)内存模型
    图解jvm--(三)类加载与字节码技术
    Java:CAS(乐观锁)
    如何搭建Swagger接口文档
    为什么redis cluster至少需要三个主节点?
  • 原文地址:https://www.cnblogs.com/simplepaul/p/14612668.html
Copyright © 2011-2022 走看看