首页 > 其他 > 详细

单调栈问题总结

时间:2021-04-03 00:28:07      阅读:27      评论:0      收藏:0      [点我收藏+]

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

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

 

问题解决模板:

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 柱状图中最大的矩形

单调栈问题总结

原文:https://www.cnblogs.com/simplepaul/p/14612668.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!