单调栈
asdf
SYaoJun
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1793. 好子数组的最大分数
分析 题目: 1793. 好子数组的最大分数 思路: 换个思路枚举,每次枚举nums[i]作为子数组的最小值,预处理出该值作为最小值两边能够覆盖的区间,使用单调栈处理。 最后统计结果的时候,判断是否下标k,如果包含才更新最大值。 相似题 84. 柱状图中最大的矩形 1856. 子数组最小乘积的最大值 代码 class Solution { public: int maximumScore(vector<int>& nums, int k) {原创 2021-10-25 23:22:10 · 329 阅读 · 0 评论 -
739. 每日温度
分析 题目:739. 每日温度 思路:右下降栈,模板题。 考查点: 单调栈 代码 class Solution { public: vector<int> dailyTemperatures(vector<int>& A) { // 翻译一下:找到下一个更大更大元素 右下降栈 int n = A.size(); vector<int> res(n); stack<int> st原创 2021-10-10 14:37:36 · 193 阅读 · 0 评论 -
CM74 下一个较大元素
分析 题目:CM74 下一个较大元素 思路:保留最大元素,右下降栈 代码 class NextElement { public: vector<int> findNext(vector<int> A, int n) { // write code here vector<int> res(n); stack<int> stk; for(int i = n-1; i >= 0; i原创 2021-10-10 10:21:26 · 242 阅读 · 0 评论 -
直方图内最大矩形
题目 公司:美团 类型:单调栈 题意:找到一个数组中形成的最大矩形。leetcode84题原题。 class MaxInnerRec { public: int countArea(vector<int> A, int n) { //单调栈 stack<int> stk; stk.push(-1); i...原创 2020-03-27 22:28:20 · 170 阅读 · 0 评论 -
下一个较大元素Ⅱ
题目 类型:单调双栈 二分 题意:找到大于当前数的最小值。 版本1 set有序二分查找 34ms class NextElement { public: vector<int> findNext(vector<int> A, int n) { vector<int> res(n, -1); set<int> st...原创 2020-03-28 22:47:39 · 249 阅读 · 0 评论 -
AcWing. 135. 最大子序和
题目链接 单调队列 使用前缀和预处理 使用队列维护长度为m的集合 从队列中根据单调性在O(1)O(1)O(1)的时间内求得极值 #include <iostream> #include <cstring> #include <algorithm> #include <climits> using namespace std; typedef long long LL; const int N = 3e5+6; int q[N]; LL s[N]; int原创 2021-06-11 12:12:50 · 197 阅读 · 1 评论 -
单调栈模板题
CPP版 牛客网题目链接 主要参照AcWing基础课讲的单调栈,注意这里统计的是下标位置而不是值。 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums intvector * @return intvector<vector<>> */ // NC157 单调栈 vector&原创 2021-05-12 14:10:05 · 275 阅读 · 0 评论
分享