单调栈

2024/4/11 21:04:19

Leetcode—907.子数组的最小值之和【中等】

2023每日刷题&#xff08;四十二&#xff09; Leetcode—907.子数组的最小值之和 算法思想 参考自y神思想 实现代码 class Solution { public:int sumSubarrayMins(vector<int>& arr) {long long ans 0;const int mod 1e97;int n arr.size();stack<int>…

【LeetCode每日一题: 1019. 链表中的下一个更大节点 | 单调栈 】

&#x1f34e;作者简介&#xff1a;硕风和炜&#xff0c;CSDN-Java领域新星创作者&#x1f3c6;&#xff0c;保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享&#x1f48e;&#x1f48e;&#x1f48e; &#x1f34e;座右…

单调栈的介绍以及一些基本性质

单调栈的定义&#xff1a; 单调栈就是栈内元素单调递增或者单调递减的栈&#xff0c;单调栈只能在栈顶操作。 为了更好的理解单调栈&#xff0c;则可将单调栈用生活情形模拟实现&#xff0c;例如&#xff1a; 我们借用拿号排队的场景来说明下。现在有很多人在排队买可乐&…

单调栈练习(一)— 子数组区间内最小值问题

题目 给定一个只包含正数的数组arr&#xff0c;arr中任何一个子数组sub&#xff0c; 一定都可以算出(sub累加和 ) * (sub中的最小值)是什么&#xff0c; 那么所有子数组中&#xff0c;这个值最大是多少&#xff1f; 前置知识-单调栈结构 暴力解 这道题暴力解的思路是&#xff…

POJ 3250 Bad Hair Day 单调栈 代码详解

欢迎关注我的个人博客&#xff1a;www.zuzhiang.cn 传送门&#xff1a;POJ 3250 题目大意&#xff1a;有一群牛站成一排&#xff0c;每头牛都是面朝右的&#xff0c;每头牛可以看到他右边身高比他小的牛。给出每头牛的身高&#xff0c;要求每头牛能看到的牛的总数。 本题还有一…

LeetCode-1008. 前序遍历构造二叉搜索树【栈 树 二叉搜索树 数组 二叉树 单调栈】

LeetCode-1008. 前序遍历构造二叉搜索树【栈 树 二叉搜索树 数组 二叉树 单调栈】 题目描述&#xff1a;解题思路一&#xff1a;题目大致意思就是给定一个二叉树的前序遍历&#xff0c;求对应的二叉搜索树。一种比较特殊的点是「二叉搜索树」的中序遍历的结果是【有序序列】&am…

LeetCode739. Daily Temperatures——单调栈

文章目录 一、题目二、题解 一、题目 Given an array of integers temperatures represents the daily temperatures, return an array answer such that answer[i] is the number of days you have to wait after the ith day to get a warmer temperature. If there is no f…

【Leetcode】84.柱状图中最大的矩形(Hard)

一、题目 1、题目描述 给定 n n n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例1: 输入:heights = [2,1,5,6,2,3] 输出:10 解释:最大的矩形为图中红色区域,面积为 10示例2:…

柱状图中最大的矩形-栈84-python

对每一个元素找到后面第一个比自己小的元素&#xff0c;属于单调栈&#xff08;单调递增&#xff09;问题。 class Solution:def largestRectangleArea(self, heights: List[int]) -> int:# 在heights的首尾增加两个哨兵元素0&#xff1a;# 首部是为了循环中不用判断stack是…

2019南昌网络赛 I. Max answer(单调栈+线段树)

链接&#xff1a;https://nanti.jisuanke.com/t/38228 题意和思路都和https://blog.csdn.net/birdmanqin/article/details/97553976差不多。 #include <bits/stdc.h> #define ll long long using namespace std; const int N 5e510; const ll inf 1e18; struct node …

下一个更大元素II-栈503-python

循环数组的单调栈&#xff08;单调递减&#xff09;问题&#xff0c;可以通过两倍数组长度取余操作模拟循环数组。 class Solution:def nextGreaterElements(self, nums: List[int]) -> List[int]:n len(nums)stack []res [0] * nfor i in range(2*n-1, -1, -1):pos i …

LeetCode1504. Count Submatrices With All Ones

文章目录 一、题目二、题解 一、题目 Given an m x n binary matrix mat, return the number of submatrices that have all ones. Example 1: Input: mat [[1,0,1],[1,1,0],[1,1,0]] Output: 13 Explanation: There are 6 rectangles of side 1x1. There are 2 rectangles…

第二周周赛——加油 题解(分别出自HDU5615,HDU5586,codeforces 319B,codeforces 518C,codeforces 548D)

A题&#xff1a; A题题目链接 题目描述&#xff1a; QAQ又遇到数学问题了 TimeLimit:1000MS MemoryLimit:65536KB64-bit integer IO format:%I64dProblem DescriptionJam有道数学题想向你请教一下&#xff0c;他刚刚学会因式分解比如说,x^26x5(x1)(x5)就好像形如 ax^2bxc &…

LeetCode 739. Daily Temperatures

原题目&#xff1a;https://leetcode-cn.com/problems/daily-temperatures/ 思路&#xff1a; 单调栈。 代码&#xff1a; class Solution { public:vector<int> dailyTemperatures(vector<int>& T) {vector<int> ans(T.size());stack<int> mono…

【LeetCode:907. 子数组的最小值之和 | 贡献法 乘法原理 单调栈】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

20240119-子数组最小值之和

题目要求 给定一个整数数组 arr&#xff0c;求 min(b) 的总和&#xff0c;其中 b 的范围涵盖 arr 的每个&#xff08;连续&#xff09;子数组。由于答案可能很大&#xff0c;因此返回答案模数 Example 1: Input: arr [3,1,2,4] Output: 17 Explanation: Subarrays are [3]…

单调栈解木板倒水问题(单调栈的简单应用)

题目描述&#xff1a; 地上从左到右竖立着 n 块木板&#xff0c;从 1 到 n 依次编号&#xff0c;如下图所示。我们知道每块木板的高度&#xff0c;在第 n 块木板右侧竖立着一块高度无限大的木板&#xff0c;现对每块木板依次做如下的操作&#xff1a;对于第 i 块木板&#xff…

LeetCode 1130. 叶值的最小代价生成树

原题目&#xff1a;https://leetcode-cn.com/problems/minimum-cost-tree-from-leaf-values/ 思路&#xff1a; 单调栈 代码&#xff1a; class Solution { public:int mctFromLeafValues(vector<int>& arr) {stack<int> monostack;int sum 0;for(int tmp :…

LeetCode 496. 下一个更大元素 I

原题目&#xff1a;https://leetcode-cn.com/problems/next-greater-element-i/ 思路&#xff1a; 单调栈 代码&#xff1a; class Solution { public:vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {unordered_map &l…

POJ - 3494 Largest Submatrix of All 1’s

Given a m-by-n (0,1)-matrix, of all its submatrices of all 1’s which is the largest? By largest we mean that the submatrix has the most elements. Input The input contains multiple test cases. Each test case begins with m and n (1 ≤ m, n ≤ 2000) on li…

Educational Codeforces Round 160 (Rated for Div. 2) D. Array Collapse(单调栈+dp)

题目 给定一个长为n(n<2e5)的排列&#xff0c;你可以执行以下操作若干次&#xff0c; 每次你可以选择一个区间[l,r]&#xff0c;只保留这个区间内的最小值&#xff0c;将其他值都删除 删完之后前后位置会自动接上&#xff0c;形成一个新的数组 求这样操作若干次后&#…

算法竞赛进阶指南---0x18(单调栈)City Game

题面 题解 我们可以枚举每一行&#xff0c;记录这一行每列连续 F 的个数(如图枚举到第四行) &#xff0c;F的个数可以从第一行递推求出&#xff0c;这样问题就转化成算法竞赛进阶指南—0x11(栈) 直方图中最大的矩形 对于每一行&#xff0c;我们可以枚举每个高度所能组成的面积最…

美丽塔O(n)解法单调栈

题目 见上一篇&#xff1a; 较难算法美丽塔时间复杂度O(n)-CSDN博客 时间复杂度 O(n) 分析 接着上篇。从左向右依次处理Left&#xff0c;处理Left[i]时&#xff0c;从右向左寻找第一个符合maxHeights[j]<maxHeights[i]的j。如果j1<j2&#xff0c;且maxHeights[j1]&g…

POJ 2796 Feel Good 单调栈的应用 代码详解

传送门&#xff1a;POJ 2796 题目大意&#xff1a;给出一组数字&#xff0c;求一区间&#xff0c;使得区间元素和乘以区间最小值最大&#xff0c;结果要求给出这个最大值和区间的左右端点。 Sample Input 6 3 1 6 4 5 2Sample Output 60 3 5 前置技能&#xff1a;单调栈的原理…

每日温度-栈739-python

没看答案&#xff0c;单调栈&#xff08;单调递减&#xff09;问题。 class Solution:def dailyTemperatures(self, temperatures: List[int]) -> List[int]:n len(temperatures)stack []res [0] * nfor i in range(n-1, -1, -1):while stack and temperatures[stack[-1…

2019牛客暑期多校训练营(第二场),H

单调栈可以求出最大矩形面积&#xff0c;这里稍作变形即可解决。 设s[i][j]为原图&#xff0c;h[i][j]为以s[i][j]为底的矩形的最大高度。记录下每个h[i][j]&#xff0c;然后逐行求最大矩形面积即可。 不过这里最终要输出的是第二大矩形的面积&#xff08;可以重叠的&#xff0…

【单调栈】P4147 玉蟾宫

题意 给定一个01矩阵&#xff0c;求面积最大的全1矩阵 分析 先求出对于点(i,j)(i,j)(i,j)向上全是1最长距离fi,jf_{i,j}fi,j​ 那么我们对于每一行做一次dp 维护fff的递增单调栈&#xff0c;每次弹出后更新一下答案 每次计算的是以新加入点作为结尾的面积&#xff0c;高于…

【单调栈】AT2699 [ARC081D] Flip and Rectangles

题意 给定一个01矩阵&#xff0c;可以给每一行/每一列整体取反&#xff0c;求能得到的最大全1矩阵 分析 考虑2∗22*22∗2的矩阵&#xff0c;可以通过操作得到全1矩阵当且仅当有偶数个1 尝试推广这个结论&#xff0c;对于一个n∗mn*mn∗m的矩阵&#xff0c;我们可以先把第一…

代码随想录 Day49 单调栈01 LeetCode LeetCodeT739每日温度 T496 下一个最大元素I

前言 折磨的死去活来的动态规划终于结束啦,今天秋秋给大家带来两题非常经典的单调栈问题,可能你不清楚单调栈是什么,可以用来解决什么问题,今天我们就来一步一步的逐渐了解单调栈,到能够灵活使用单调栈.注意以下讲解中&#xff0c;顺序的描述为 从栈头到栈底的顺序 什么时候用单…

acwing 830 单调栈

题面 题解 先考虑暴力做法 ,看数据范围1e5 &#xff0c;O&#xff08;n2&#xff09;肯定过不了 &#xff0c;那么我们考虑优化内层循环 for(int i0;i<n;i){ //循环每一个数for(int ji-1;j>0;j--){ //从这个数的左边开始往前找if(a[i]>a[j]){break;}}}&#xff08…

算法竞赛进阶指南---0x11(栈) 直方图中最大的矩形

题面 题解 单调栈经典例题&#xff0c;注意数据范围结果是long long题中要求做组成的面积最大&#xff0c;那么我们可以枚举每个高度所能组成的面积最大的长方形&#xff0c;然后取一个最大值即可就看题中的样例&#xff0c;对于高度为4的&#xff0c;只有左右两边的高度>4 …

【单调栈】LeetCode2030:含特定字母的最小子序列

作者推荐 map|动态规划|单调栈|LeetCode975:奇偶跳 涉及知识点 单调栈 题目 给你一个字符串 s &#xff0c;一个整数 k &#xff0c;一个字母 letter 以及另一个整数 repetition 。 返回 s 中长度为 k 且 字典序最小 的子序列&#xff0c;该子序列同时应满足字母 letter 出…

下一个更大元素I-栈496-python

没看答案&#xff0c;暴力解法&#xff0c;时间复杂度O(n^2)。 class Solution:def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]:res []for i in nums1:pos nums2.index(i)for num in nums2[pos:]:if num > i:res.append(num)breakel…

华为机试2022.4.6:天然货仓

第三题&#xff0c;300分&#xff0c;单调栈的考点。 天然货仓 题目描述 有一个天然形成的大坑&#xff0c;为台阶状结构&#xff0c;每个台阶的长度都为1,每个都的值为整数(正整数表示高于地平面&#xff0c;零表示与地平面平齐&#xff0c;负整数表示低于地平面)。有一批同…

POJ 3494 Largest Submatrix of All 1’s 单调栈应用 图解+代码详解

传送门&#xff1a;POJ 3494 题目大意&#xff1a;求仅由0&#xff0c;1组成的矩阵中&#xff0c;全部由1组成的子矩阵的最大面积。 Sample Input 2 2 0 0 0 0 4 4 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 Sample Output 0 4 前置技能&#xff1a;1.单调栈原理及应用。 2.POJ 255…

2019牛客暑期多校训练营(第八场)A All-one Matrices(单调栈+前缀和+思维)

链接&#xff1a;https://ac.nowcoder.com/acm/contest/888/A 题意&#xff1a;给出一个只含0或1的n*m的矩阵。求有多少个全是1的极大子矩阵。 思路&#xff1a;预处理每一行中每一列连续1的高度&#xff08;h[i][j]表示从第i行第j列开始向上有多少个连续的1。&#xff09;和…

51nod 1272 最大距离 (贪心或单调栈)

传送门&#xff1a;51nod 1272 题目大意&#xff1a;从一组数中找出一对数&#xff0c;满足左边的数小于等于右边的数&#xff0c;求两数的最大距离。 思路&#xff1a; 1.单调栈&#xff0c;建议学习一下单调栈的应用&#xff1a;单调栈原理及应用。理论上时间复杂度为O(n)&…

牛客练习赛4 A(单调栈)

分析&#xff1a; 设置结构体lap{ int m,s; }&#xff0c;设置结构体数组l[n]&#xff0c;按m从大到小排序。接下来遍历l[n]&#xff0c;并用一个单调递减栈去维护&#xff0c;详解见代码。 #include<cstdio> #include<iostream> #include<algorithm> #incl…

牛客,小A的柱状图(单调栈)

小白初次遇到单调栈&#xff0c;题解参考于&#xff1a; https://blog.csdn.net/qq_41608020/article/details/89294830 重点&#xff1a;高度小的矩形整一个都可以与高度大的矩形的一部分合并&#xff0c;而高度大的矩形不能够整个与高度小的矩形合并。 #include<cstdio&…

2019牛客暑期多校训练营(第四场)C sequence(单调栈+线段树)

链接&#xff1a;https://ac.nowcoder.com/acm/contest/884/C 题意&#xff1a;注意是多组输入。。。。第一行给出n&#xff0c;接下来给出数组a的n个元素和数组b的n个元素。在所有连续区间中&#xff0c;假设为[l,r]&#xff0c;求数组a在该区间的最小值*数组b在该区间的和的…

求解全1子矩阵与莫反

题目链接 设g(x)g(x)g(x)表示最大公约数为xxx的倍数的子矩阵数量、f(x)f(x)f(x)表示最大公约数等于xxx的子矩阵数量。 则g(d)∑d∣ef(e)g(d)\sum_{d|e}f(e)g(d)∑d∣e​f(e) f(d)∑d∣eμ(ed)g(e)f(d)\sum_{d|e}\mu(\frac{e}{d})\times g(e)f(d)∑d∣e​μ(de​)g(e) 即只需要求…

单调栈结构

单调栈 单调栈是一种特殊设计的栈结构&#xff0c;为了解决如下的问题&#xff1a; 给定一个可能含有重复数值的 arr[]&#xff0c;i位置的数一定存在如下两种信息&#xff1a; arr[i]的左侧离 i 最近并且小于&#xff08;或者大于&#xff09;arr[i] 的数在哪&#xff1f;arr…

【力扣周赛】第 364 场周赛⭐(前后缀分解+单调栈DFS技巧)

文章目录 竞赛链接Q1&#xff1a;2864. 最大二进制奇数&#xff08;贪心&#xff09;写法1——手动模拟&#xff08;代码长&#xff0c;运行快&#xff09;写法2——API&#xff08;代码短&#xff0c;运行慢&#xff09; Q2&#xff1a;2865. 美丽塔 I竞赛时代码——枚举山顶 …

【单调栈】下一个更大元素 III

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;下一个排列 写在最后 Tag 【单调栈】【数组】【字符串】 题目来源 556. 下一个更大元素 III 题目解读 找出大于整数的最小整数&#xff0c;这个最小整数必须由原来整数中出现的数字组成。 解题思路 方法一&#xff…

第 358 场LeetCode周赛题解

A 数组中的最大数对和 数据范围小&#xff0c;直接暴力枚举数对 class Solution { public:int mx(int x) {//返回10进制表示的数的最大数字int res 0;for (; x; x / 10)res max(res, x % 10);return res;}int maxSum(vector<int> &nums) {int n nums.size();int r…

【每日刷题】栈与队列-随想录4、7、8、LC155、单调栈-LC739、单调栈-LC84

1. 随想录-4.LC20有效的括号 题解很妙。遍历到 [ { ( 的时候往stack里加入对应的 ] } )元素。遍历到右边元素的时候&#xff0c;就看栈顶弹出的元素是否一致。这解决了判断括号是否匹配问题。 但同时要注意数量问题&#xff01;&#xff01;两种情况 左括号少&#xff0c;右…

代码随想录训练营第59天|503.下一个更大元素II,42.接雨水

代码随想录训练营第59天|503.下一个更大元素II&#xff0c;42.接雨水 503.下一个更大元素文章思路代码 42.接雨水文章思路代码 总结 503.下一个更大元素 文章 代码随想录|0503.下一个更大元素II 思路 把遍历范围再扩大一倍即可 代码 class Solution {public int[] nextGr…

【每日一题】补档 CF1765N. Number Reduction | 单调栈 | 简单

题目内容 原题链接 给定一个长度为 n n n 的不含前导零的数 x x x &#xff0c;删除其中 k k k 个数位&#xff0c;不能出现前导零。 问删除 k k k 个位后最小的数 数据范围 1 ≤ n ≤ 5 ⋅ 1 0 5 1\leq n\leq 5\cdot 10^5 1≤n≤5⋅105 0 ≤ k < n 0\leq k<n 0≤k…

单调栈 单调队列 专题

文章目录一、单调栈1、问题模型2、实现过程&#xff1a;3、代码实现4、规律总结5、题目练习二、单调队列1、问题模型2、实现过程&#xff1a;3、代码实现4、规律总结5、题目练习三、总结一、单调栈 1、问题模型 主要解决一类问题&#xff1a; O(n)O(n)O(n) 求数列中每个元素左…

力扣第84 题柱状图中最大的矩形 C++ 单调栈 Java

题目 84. 柱状图中最大的矩形 困难 相关标签 栈 数组 单调栈 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 示例 1: 输入&#xff1a;heigh…

Leetcode:42. 接雨水(单调栈C++)

目录 42. 接雨水 题目描述&#xff1a; 实现代码与解析&#xff1a; 单调栈 原理思路&#xff1a; 42. 接雨水 题目描述&#xff1a; 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#x…

第十章 单调栈 part03 84. 柱状图中最大的矩形

第六十三天| 第十章 单调栈 part03 84. 柱状图中最大的矩形 一、84. 柱状图中最大的矩形 题目链接&#xff1a;https://leetcode.cn/problems/largest-rectangle-in-histogram/ 题目介绍&#xff1a; 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子…

第 364 场 LeetCode 周赛题解

A 最大二进制奇数 降序排序字符串&#xff0c;然后将最后一个 1 与最后一位交换 class Solution { public:string maximumOddBinaryNumber(string s) {sort(s.begin(), s.end(), greater<>());for (int i s.size() - 1;; i--)if (s[i] 1) {swap(s[i], s.back());break;…

单调栈练习(五)— 子数组的最小值之和

题目 同样的LeetCode原题&#xff1a;题目链接 给定一个整数数组 arr&#xff0c;找到 min(b) 的总和&#xff0c;其中 b 的范围为 arr 的每个&#xff08;连续&#xff09;子数组。 由于答案可能很大&#xff0c;因此 返回答案模 10^9 7 。 思路 暴力解 先来说暴力解的思路…

【算法】单调栈题单——字典序最小⭐(一种类型的模板题)

文章目录 题目列表316. 去除重复字母⭐⭐⭐⭐⭐&#xff08;类型题模板&#xff1a;单调栈&#xff0c;字典序最小&#xff09;221021天池-03. 整理书架&#xff08;保留数量为 limit 的字典序最小&#xff09;402. 移掉 K 位数字&#xff08;最多删除 k 次 前导零的处理&…

单调栈练习(四)— 统计全 1 子矩形

题目 同样的LeetCode原题&#xff1a;题目链接 给你一个 m x n 的二进制矩阵 mat &#xff0c;请你返回有多少个 子矩形 的元素全部都是 1 。 单调栈 解题思路整体和上一篇文章差不多&#xff0c;都是用到了压缩数组的技巧&#xff0c;通过压缩数组来构建一个数组矩阵、以每一…

2020.9.6字节跳动笔试题第二三题:单调栈与连续最大和

连续最大和 问题描述 简单的连续最大和就是给你一个数组&#xff0c;求其子序列的最大和是多少。比如[1, -1, 2, -1, 3, -2]&#xff0c;很明显答案是 2 (-1) 3 4。 例题&#xff1a;连续最大和 问题变形 如HDU1003 Max Sum&#xff0c;不仅要求出连续最大和&#xff0c…

【华为OD题库-022】阿里巴巴找黄金宝箱(IV)-java

题目 一贫如洗的椎夫阿里巴巴在去砍柴的路上&#xff0c;无意中发现了强盗集团的藏宝地&#xff0c;藏宝地有编号从0-N的子&#xff0c;每个箱子上面有一个数字&#xff0c;箱子排列成一个环&#xff0c;编号最大的箱子的下一个是编号为0的箱子。请输出每个箱子贴的数字之后的第…

LeetCode 2454. 下一个更大元素 IV:双单调栈

【LetMeFly】2454.下一个更大元素 IV&#xff1a;双单调栈 力扣题目链接&#xff1a;https://leetcode.cn/problems/next-greater-element-iv/ 给你一个下标从 0 开始的非负整数数组 nums 。对于 nums 中每一个整数&#xff0c;你必须找到对应元素的 第二大 整数。 如果 num…

【单调栈】LeetCode:1944队列中可以看到的人数

作者推荐 【贪心算法】【中位贪心】.执行操作使频率分数最大 题目 有 n 个人排成一个队列&#xff0c;从左到右 编号为 0 到 n - 1 。给你以一个整数数组 heights &#xff0c;每个整数 互不相同&#xff0c;heights[i] 表示第 i 个人的高度。 一个人能 看到 他右边另一个人…

单调栈(力扣496、LCR03、503)

单调栈&#xff1a;数据存储顺序单调递增或单调递减 解决适用问题&#xff1a;左边和右边比当前小&#xff08;大&#xff09;且最近的。 力扣可以使用单调栈题目: 496. 下一个更大元素 I LCR 038. 每日温度 503. 下一个更大元素 II 496. 下一个更大元素 I&#xff1a; num…

数组(九)-- LC[316][321][402] 去除重复字母

1 移掉 K 位数字 1.1 题目描述 题目链接&#xff1a;https://leetcode.cn/problems/remove-k-digits/ 1.2 思路分析 这道题让我们从一个字符串数字中删除 k 个数字&#xff0c;使得剩下的数最小。也就说&#xff0c;我们要保持原来的数字的相对位置不变。 以题目中的 num1432…

【LeetCode:2865. 美丽塔 I | 暴力模拟】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

【前缀和】【单调栈】LeetCode2281:巫师的总力量和

作者推荐 map|动态规划|单调栈|LeetCode975:奇偶跳 涉及知识点 单调栈 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 题目 作为国王的统治者&#xff0c;你有一支巫师军队听你指挥。 给你一个下标从 0 开始的整数数组 strength &…

【算法】单调栈 每日温度 接雨水

文章目录 例题739. 每日温度42. 接雨水 相关练习1475. 商品折扣后的最终价格901. 股票价格跨度1019. 链表中的下一个更大节点84. 柱状图中最大的矩形 单调栈【基础算法精讲 26】 例题 739. 每日温度 https://leetcode.cn/problems/daily-temperatures/description/ 提示&a…

POJ 2559 HDU 1506 Largest Rectangle in a Histogram 51nod 1102 面积最大的矩形 单调栈的应用

欢迎关注我的个人博客&#xff1a;www.zuzhiang.cn 传送门&#xff1a;POJ 2559 题目大意&#xff1a;POJ 2559 &&HDU 1506 && 51NOD 1102这三个题其实都是一个题&#xff0c;有N个矩形&#xff0c;宽度都为1&#xff0c;给出N个矩形的高度&#xff0c;求由这N…

496. 下一个更大元素 I(单调栈C++)

目录 496. 下一个更大元素 I 问题描述&#xff1a; 实现代码与解析&#xff1a; 单调栈 原理思路&#xff1a; 496. 下一个更大元素 I 问题描述&#xff1a; nums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置 右侧 的 第一个 比 x 大的元素。 给你两个 没有…

OJ练习第188题——队列中可以看到的人数

队列中可以看到的人数 力扣链接&#xff1a;1944. 队列中可以看到的人数 题目描述 示例 解题思路&#xff08;单调栈&#xff09; 分析图例可以发现&#xff0c;第 0个人可以看到的三个人的身高是严格递增的。如果满足 i<j&#xff0c;此时下标为 jjj 且靠后的人比下标为…

LeetCode 84. 柱状图中最大的矩形

原题目&#xff1a;https://leetcode-cn.com/problems/largest-rectangle-in-histogram/ 思路&#xff1a; 使用单调栈&#xff0c;分别存储i左边最近的、高度比他小的index&#xff0c;i的右边最近的、高度比他小的index。 单调栈的思想&#xff0c;从左向右遍历heighs数组&…

接雨水和每日温度

**接雨水**给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 int trap(int* height, int heightSize){if(heightSize0){return 0;}int all0;//总雨水int stack[heightSize];//数组模拟栈int num0;//栈顶指…

LeetCode-1124. 表现良好的最长时间段【哈希表,前缀和,单调栈】

LeetCode-1124. 表现良好的最长时间段【哈希表&#xff0c;前缀和&#xff0c;单调栈】题目描述&#xff1a;解题思路一&#xff1a;查字典。cur是当前的前缀和(劳累与不劳累天数之差)&#xff0c;向前遍历。有两种情况。情况一&#xff0c;若cur大于0则是[0,i]的劳累与不劳累天…

录第第五十八天——每日温度,下一个更大元素|

单调栈 栈里的元素保持单调递增或者递减&#xff0c;栈内元素是元素下标。单调栈的本质是空间换时间&#xff0c;因为在遍历的过程中需要用一个栈来记录右边第一个比当前元素高的元素&#xff0c;优点是整个数组只需要遍历一次求一个元素右边第一个更大元素&#xff0c;单调栈…

LeetCode-739. 每日温度【栈 数组 单调栈】

LeetCode-739. 每日温度【栈 数组 单调栈】 题目描述&#xff1a;解题思路一&#xff1a;单调栈&#xff0c;顺序遍历数组维护单调递减栈&#xff0c;在出栈的时候得出答案。可以参考[LeetCode-503. 下一个更大元素 II【栈 数组 单调栈】](https://blog.csdn.net/qq_45934285/a…

【基础算法模板梳理】再也不想学算法了!(待更新)

目录 1、【二分】 &#xff08;1&#xff09;rmid —— 大于等于某数的最小值 &#xff08;2&#xff09;lmid —— 小于等于某数的最大值 2、【前缀和】 &#xff08;1&#xff09;一维前缀和 &#xff08;2&#xff09;二维前缀和 3、【差分】 &#xff08;1&#x…

【LeetCode:2736. 最大和查询 | 贪心 + 二分 + 单调栈】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

bzoj 4237: 稻草人

Description JOI村有一片荒地&#xff0c;上面竖着N个稻草人&#xff0c;村民们每年多次在稻草人们的周围举行祭典。有一次&#xff0c;JOI村的村长听到了稻草人们的启示&#xff0c;计划在荒地中开垦一片田地。和启示中的一样&#xff0c;田地需要满足以下条件&#xff1a;田地…

LeetCode-496. 下一个更大元素 I【栈 数组 哈希表 单调栈】

LeetCode-496. 下一个更大元素 I【栈 数组 哈希表 单调栈】 题目描述&#xff1a;解题思路一&#xff1a;暴力解法解题思路二&#xff1a;单调栈 哈希表。具体思路是利用一个栈顶小栈底大的单调栈&#xff0c;然后用哈希表记录上一个最大的元素&#xff0c;解题思路三&#xf…

Leetcode—901.股票价格跨度【中等】

2023每日刷题&#xff08;五十二&#xff09; Leetcode—901.股票价格跨度 算法思想 实现代码 class StockSpanner { public:stack<pair<int, int>> st;int curday -1;StockSpanner() {st.emplace(-1, INT_MAX);}int next(int price) {while(price > st.top(…

LeetCode每日一题 | 1944. 队列中可以看到的人数

文章目录 队列中可以看到的人数题目描述问题分析程序代码&#xff08;Golang 版本&#xff09; 队列中可以看到的人数 题目描述 原题链接 有 n 个人排成一个队列&#xff0c;从左到右 编号为 0 到 n - 1 。给你以一个整数数组 heights &#xff0c;每个整数 互不相同&#xff…

算法基础——单调栈,单调队列

目录 1.单调栈 例题&#xff1a;【模板】单调栈 例题:求和 2.单调队列 例题&#xff1a;滑动窗口 1.单调栈 例题&#xff1a;【模板】单调栈 可以想象出一个柱状图&#xff0c;值越大&#xff0c;这个柱子越高 以此题的样例为例&#xff1a; 第一个数为7&#xff0c;想…

二叉树题目:最大二叉树

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;最大二叉树 出处&#xff1a;654. 最大二叉树 难度 5 级 题目描述 要求 给定一个没有重复元素的整数数组 num…

Leetcode.321 拼接最大数

题目链接 Leetcode.321 拼接最大数 hard 题目描述 给定长度分别为 m m m 和 n n n 的两个数组&#xff0c;其元素由 0 ∼ 9 0 \sim 9 0∼9 构成&#xff0c;表示两个自然数各位上的数字。现在从这两个数组中选出 k k k ( k ≤ m n ) (k \leq m n) (k≤mn) 个数字拼接成…

Leetcode.1019 链表中的下一个更大节点

题目链接 Leetcode.1019 链表中的下一个更大节点 Rating &#xff1a; 1571 题目描述 给定一个长度为 n 的链表 head 对于列表中的每个节点&#xff0c;查找下一个 更大节点 的值。也就是说&#xff0c;对于每个节点&#xff0c;找到它旁边的第一个节点的值&#xff0c;这个节…

map|动态规划|单调栈|LeetCode975:奇偶跳

作者推荐 【贪心算法】【中位贪心】.执行操作使频率分数最大 涉及知识点 单调栈 动态规划 map 题目 给定一个整数数组 A&#xff0c;你可以从某一起始索引出发&#xff0c;跳跃一定次数。在你跳跃的过程中&#xff0c;第 1、3、5… 次跳跃称为奇数跳跃&#xff0c;而第 2、…

【单调栈】LeetCode:2818操作使得分最大

作者推荐 map|动态规划|单调栈|LeetCode975:奇偶跳 涉及知识点 单调栈 题目 给你一个长度为 n 的正整数数组 nums 和一个整数 k 。 一开始&#xff0c;你的分数为 1 。你可以进行以下操作至多 k 次&#xff0c;目标是使你的分数最大&#xff1a; 选择一个之前没有选过的 非…

单调栈分类、封装和总结

作者推荐 map|动态规划|单调栈|LeetCode975:奇偶跳 通过枚举最小&#xff08;最大&#xff09;值不重复、不遗漏枚举所有子数组 C算法&#xff1a;美丽塔O(n)解法单调栈左右寻找第一个小于maxHeight[i]的left,right&#xff0c;[left,right]直接的高度都是maxHeight[i] 可以…

【重点!!!】【单调栈】84.柱状图中最大矩形

题目 法1&#xff1a;单调栈[原版] O(N)O(N) 必须掌握算法&#xff01;&#xff01;&#xff01; class Solution {public int largestRectangleArea(int[] heights) {int n heights.length, res 0;int[] leftMin new int[n], rightMin new int[n];Stack<Integer>…

文件修复

Description 给出一个字符串S&#xff0c;求S有多少个出现了2次以上的字串。 |S|<100000 Solutioin 又是裸题&#xff0c;求出SA用单调栈直接搞就好了。 用来复习SA Code #include<cstdio> #include<cstring> #include<algorithm> #define fo(i,a,…

数据结构篇-01:单调栈

单调栈是栈的一种&#xff0c;可以使得每次新元素入栈后&#xff0c;栈内的元素都保持有序&#xff08;单调递增或者单调递减&#xff09;。 单调栈的用途不太广泛&#xff0c;只处理一类典型的问题&#xff0c;比如[下一个更大元素]、[上一个更小元素] 等。 在本文中&#x…

Leetcode—739.每日温度【中等】

2023每日刷题&#xff08;四十二&#xff09; Leetcode—739.每日温度 单调栈实现思想 从右到左实现代码 class Solution { public:vector<int> dailyTemperatures(vector<int>& temperatures) {int n temperatures.size();stack<int> st;vector<i…

第十章 单调栈part02(● 503.下一个更大元素II ● 42. 接雨水 )

学习目标&#xff1a; ● 503.下一个更大元素II ● 42. 接雨水 学习内容&#xff1a; 503.下一个更大元素II 这道题和 739. 每日温度 几乎如出一辙&#xff0c;可以自己尝试做一做 https://programmercarl.com/0503.%E4%B8%8B%E4%B8%80%E4%B8%AA%E6%9B%B4%E5%A4%A7%E5%85%83…

【每日一题】ABC311G - One More Grid Task | 单调栈 | 简单

题目内容 原题链接 给定一个 n n n 行 m m m 列的矩阵&#xff0c;问权值最大的子矩阵的权值是多少。 对于一个矩阵&#xff0c;其权值定义为矩阵中的最小值 m i n v minv minv 乘上矩阵中所有元素的和。 数据范围 1 ≤ n , m ≤ 300 1\leq n,m \leq 300 1≤n,m≤300 1 ≤…

牛客,Keep In Line(单调栈)

开始几遍是用暴力打的&#xff0c;基本都TLE&#xff0c;后来寻思了一下&#xff0c;发现&#xff1a; 正常情况下&#xff0c;入队顺序应为&#xff1a;1,2,3,4,5,… 出队顺序也应为&#xff1a;1,2,3,4,5,… 有什么发现&#xff1f;出入队都是一个严格单调递增序列。想到了什…

代码随想录 | 单调栈part01 part02 part03

739 每日温度 单调栈&#xff0c;用于快速检索某个元素左边或者右边第一个比它大或者小的元素 通过维持一个有序的栈来实现 寻找比它大的&#xff0c;则栈顶到栈底是递增的&#xff0c;反之则是递减的 class Solution:def dailyTemperatures(self, temperatures: List[int]) …

单调栈原理及应用 详解 附各种类型的题目练习

欢迎关注我的个人博客&#xff1a;www.zuzhiang.cn 定义&#xff1a; 单调栈&#xff0c;顾名思义&#xff0c;是栈内元素保持一定单调性&#xff08;单调递增或单调递减&#xff09;的栈。这里的单调递增或递减是指的从栈顶到栈底单调递增或递减。既然是栈&#xff0c;就满足…

51nod 1158 全是1的最大子矩阵 (单调栈) 详细图解

该题和 POJ 3494 是一样的&#xff0c;数据比 poj 的题还要弱。 传送门&#xff1a;51nod 1158 题目大意&#xff1a;求仅由0&#xff0c;1组成的矩阵中&#xff0c;全部由1组成的子矩阵的最大面积。 前置技能&#xff1a;单调栈原理及应用。 思路&#xff1a;这个题本质上是…

AtCoder Regular Contest 115 E. LEQ and NEQ(容斥 单调栈优化dp)

题目 n(n<5e5)个数&#xff0c;第i个数ai(1<ai<1e9) 构造一个序列b&#xff0c;要求bi∈[1,ai]&#xff0c;且b[i]不等于b[i1] 求方案数&#xff0c;答案对998244353取模 思路来源 洛谷题解Xu_brezza 一模一样的cf题&#xff1a; Codeforces Round 759 (Div. 2…

【GDOI2016模拟3.9】奇妙的数列

Description 给出一个长度为n的数列b&#xff0c;求另一个长度为n的数列a中的最大值。其中&#xff0c;aii-k1&#xff0c;k是最小的满足对于k<j<i&#xff0c;bk<bj<bi。 n<10^7 Solution 可以发现&#xff0c;对于每一个i&#xff0c;ai是在它左边且小于等…

LeetCode 1944.队列中可以看到的人数:(一步步图解)单调栈

【LetMeFly】1944.队列中可以看到的人数&#xff1a;&#xff08;一步步图解&#xff09;单调栈 力扣题目链接&#xff1a;https://leetcode.cn/problems/number-of-visible-people-in-a-queue/ 有 n 个人排成一个队列&#xff0c;从左到右 编号为 0 到 n - 1 。给你以一个整…

1475.商品折扣后的最终价格

文章目录 题目描述解题思路&#xff1a;方法一&#xff1a;通俗解法方法二&#xff1a;单调栈 leetcode原题链接 1475. 商品折扣后的最终价格 题目描述 给你一个数组 prices &#xff0c;其中 prices[i] 是商店里第 i 件商品的价格。 商店里正在进行促销活动&#xff0c;如果你…

【单调栈】LeetCode2334:元素值大于变化阈值的子数组

作者推荐 map|动态规划|单调栈|LeetCode975:奇偶跳 本文涉及的基础知识点 单调栈分类、封装和总结 题目 给你一个整数数组 nums 和一个整数 threshold 。 找到长度为 k 的 nums 子数组&#xff0c;满足数组中 每个 元素都 大于 threshold / k 。 请你返回满足要求的 任意 …

LeetCode 0907. 子数组的最小值之和:单调栈

【LetMeFly】907.子数组的最小值之和&#xff1a;单调栈 力扣题目链接&#xff1a;https://leetcode.cn/problems/sum-of-subarray-minimums/ 给定一个整数数组 arr&#xff0c;找到 min(b) 的总和&#xff0c;其中 b 的范围为 arr 的每个&#xff08;连续&#xff09;子数组…

LeetCode-2487. 从链表中移除节点【栈 递归 链表 单调栈】

LeetCode-2487. 从链表中移除节点【栈 递归 链表 单调栈】 题目描述&#xff1a;解题思路一&#xff1a;可以将链表转为数组&#xff0c;然后从后往前遍历&#xff0c;遇到大于等于当前元素的就入栈&#xff0c;最终栈里面的元素即是最终的答案。解题思路二&#xff1a;递归&am…

洛谷 P5300 [GXOI/GZOI2019]与或和(单调栈)

问题 C: 与或和 时间限制: 3 Sec 内存限制: 512 MB 提交: 177 解决: 25 [提交] [状态] [命题人:admin] 题目描述 Freda 学习了位运算和矩阵以后&#xff0c;决定对这种简洁而优美的运算&#xff0c;以及蕴含深邃空间的结构进行更加深入的研究。 对于一个由非负整数构成的矩…

2019牛客暑期多校训练营(第二场) H Second Large Rectangle(单调栈)

链接&#xff1a;https://ac.nowcoder.com/acm/contest/882/H 题意&#xff1a;给你n、m&#xff0c;再给出一个n行m列的只含"0"或"1"的字符矩阵。求全是"1"的第二大矩阵的大小。 思路&#xff1a;做过求最大矩阵的&#xff0c;当时用的单调栈…

LeetCode-503. 下一个更大元素 II【栈 数组 单调栈】

LeetCode-503. 下一个更大元素 II【栈 数组 单调栈】 题目描述&#xff1a;解题思路一&#xff1a;单调栈。思路是利用循环数组来维护一个单调递减栈&#xff0c;遇到当前元素比栈顶元素大的就出栈&#xff0c;在出栈的时候维护出栈元素的结果&#xff08;即当前元素是出栈元素…

杭电2019多校第十场 HDU-6701 Make Rounddog Happy(单调栈+枚举)

链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid6701 题意&#xff1a;求区间内数各不相同并且max(al,al1,…,ar)−(r−l1)≤k的区间的个数。 思路&#xff1a;当时读题忽略了区间内数各不相同这个条件&#xff0c;想着不就是单调栈加简单的组合数学吗&#xff…

Codeforces Round 873 (Div. 1) B1.Range Sorting (Easy Version)(单调栈)

题目 给定长为n(n<5e3)的数组a(1<ai<1e9)&#xff0c; 对于每个子数组&#xff0c;其美丽值定义为操作任意次&#xff0c;使得子数组增序的最小秒数 每次操作&#xff0c;你可以选择两个下标[l,r]&#xff0c;将区间[l,r]排增序&#xff0c;代价是r-l秒 求所有子数…

【单调栈]LeetCode84: 柱状图中最大的矩形

作者推荐 【动态规划】【广度优先搜索】LeetCode:2617 网格图中最少访问的格子数 本文涉及的知识点 单调栈 题目 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形…

LeetCode-42. 接雨水【栈 数组 双指针 动态规划 单调栈】

LeetCode-42. 接雨水【栈 数组 双指针 动态规划 单调栈】 题目描述&#xff1a;解题思路一&#xff1a;单调栈&#xff0c;维护一个单调递减栈。每当遇到当前元素大于栈顶元素就出栈&#xff0c;在出栈时更新答案。当遇到出栈的情况&#xff0c;若单调栈栈左边有一个元素则必有…

深入浅出单调栈与单调队列

目录一、单调栈情形一&#xff1a;寻找一个数左边第一个小于它的数情形二&#xff1a;寻找一个数左边第一个小于它的数的下标情形三&#xff1a;寻找一个数右边第一个大于它的数情形四&#xff1a;寻找一个数右边第一个大于它的数的下标二、单调栈的应用2.1 单调栈模板题I2.2 单…

【LeetCode:2866. 美丽塔 II | 单调栈 + 前后缀数组】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

力扣第739题 每日温度 c++ 单调栈 Java

题目 739. 每日温度 中等 相关标签 栈 数组 单调栈 给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &#xff0c;其中 answer[i] 是指对于第 i 天&#xff0c;下一个更高温度出现在几天后。如果气温在这之后都不会升高&am…

一篇文章彻底弄懂单调栈!!!

前言 最近梳理完中间件后荔枝一边学项目一边刷算法&#xff0c;一刷了代码随想录中的字符串、双指针、栈和队列以及单调栈。其中感觉比较有难度的还是单调栈嘿&#xff0c;因此有必要(水)梳理一篇文章来复盘一下单调栈的相关知识~ 希望复盘完后可以有所收获&#xff01; 文章目…

Leetcode739. 每日温度

Every day a Leetcode 题目来源&#xff1a;739. 每日温度 解法1&#xff1a;单调栈-从左到右 单调栈中记录还没算出「下一个更大元素」的那些数&#xff08;的下标&#xff09;。 代码&#xff1a; /** lc appleetcode.cn id739 langcpp** [739] 每日温度*/// lc codesta…

Leetcode 85.最大矩形(困难)

一、题目 1、题目描述 给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵&#xff0c;找出只包含 1 的最大矩形&#xff0c;并返回其面积。 示例1&#xff1a; 输入&#xff1a;matrix [["1","0","1","0","0&qu…

代码随想录算法训练营第五十九天 | 503. 下一个更大元素 II、42. 接雨水

503. 下一个更大元素 II 方法一&#xff1a;将两个nums数组放在一起&#xff0c;使用单调栈求下一个更大元素&#xff0c;最后再把结果集即result数组resize到原数组大小就可以了。 方法二&#xff1a;在遍历的过程中模拟走了两遍nums class Solution { public:vector<in…

力扣第496题 下一个更大元素 I C++ 暴力 | 单调栈(优化)+ Java注释

题目 496. 下一个更大元素 I 简单 相关标签 栈 数组 哈希表 单调栈 nums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置 右侧 的 第一个 比 x 大的元素。 给你两个 没有重复元素 的数组 nums1 和 nums2 &#xff0c;下标从 0 开始计数&#xff0c;其中n…

单调栈与单调队列算法总结

单调栈 知识概览 单调栈最常见的应用是找到每一个数离它最近的且比它小的数。单调栈考虑的方式和双指针类似&#xff0c;都是先想一下暴力做法是什么&#xff0c;然后再挖掘一些性质如单调性&#xff0c;最终可以把目光集中在比较少的状态中&#xff0c;从而达到降低时间复杂…