单调栈/队列
单调栈/单调队列
z岁月无声
这个作者很懒,什么都没留下…
展开
-
HDU-1506.Largest Rectangle in a Histogram
地址:http://acm.hdu.edu.cn/showproblem.php?pid=1506思路:并查集 || 单调栈思路一、并查集:首先对数组以b[]={值,下标}结构按照从小到大排序,然后从大的开始处理,对于b[i]={val,id}, 比较其id位置左右相邻的值是否大于等于val,若大于等于则将其合并成一个集合,同时记录其集合中元素的个数s,那么当前元素的最大值为 val*s,res取所有元素的最大值即可。思路二、单调栈:遍历数组,维护单调递增栈,对于当前元素x,其左边元素x0,当x0&.原创 2020-11-28 20:55:40 · 202 阅读 · 0 评论 -
LeetCode-239. 滑动窗口最大值
地址:https://leetcode-cn.com/problems/sliding-window-maximum/思路:优先队列 || 单调队列 || dp思路一、优先队列:利用优先队列维护区间的最大值,同时将记录其下标 <val,id>. 遍历数组nums[i],将优先队列首节点不在k范围内的去除掉,在取首节点即可。时间复杂度O(nlogn)思路二、单调队列:利用双端队列来维护一个单调递减队列,从队列尾部加入值,队列头部取最大值和去除非法数据。遍历数组,从双端队列末尾加入值num.原创 2020-11-27 09:47:28 · 146 阅读 · 0 评论 -
Codeforces Round #401 (Div. 2)-E. Hanoi Factory
题目地址:http://codeforces.com/contest/777/problem/E思路:贪心+单调栈。对于塔的建造,a[j]放在a[i]上面必须是 内环a[i].l<a[j].r<a[i].r 外环,可以先将a[n]按照外环r由大到小排序,当r相同时,由塔建造条件可知应该将 内环l小的放在上面,因此r相同时,l大的排在前面。遍历a[i],将建造塔的a[i]放入...原创 2018-08-03 16:35:39 · 184 阅读 · 0 评论 -
51nod-1153 选择子序列
思路:这题的解题思路十分巧妙,看了大佬的思路,由代码来谈谈个人的理解Code:/*题目要求的是a[l-r]间比两端小的元素,因此可以用一个单调栈(小的先出栈)来求解,*/#include<iostream>#include<stack>using namespace std;struct node{ int x; int len;};in...原创 2018-08-01 16:28:31 · 336 阅读 · 0 评论 -
牛客-“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛-D CSL 的字符串
链接:https://ac.nowcoder.com/acm/contest/551/D来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 524288K,其他语言1048576K64bit IO Format: %lld题目描述CSL 以前不会字符串算法,经过一年的训练,他还是不会……于是他打算向你求助。给定一个字符串,只含有可打印字符,通过删...原创 2019-04-02 21:08:23 · 211 阅读 · 0 评论