![](https://img-blog.csdnimg.cn/20200424151215897.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
栈
文章平均质量分 60
栈
yc_cy1999
一只喜欢cc和想去南大的小羊
展开
-
LeetCode 第 224 场周赛 5655. Largest Submatrix With Rearrangements【动态规划】⭐⭐⭐⭐⭐
文章目录题目描述知识点我的实现码前思考代码实现时空复杂度分析码后反思参考文档题目描述知识点动态规划我的实现码前思考这道题目的motivation跟LeetCode 85非常像,是它的一个简化版。在LeetCode 85中,我们利用分解问题的方法,提出最大子矩阵一定是以某一行为底的思想对问题进行分解(这是代码的第一层循环)。在LeetCode 85中,我们需要使用到单调栈,但是在这道题目中,由于列是可以移动的,所以我们直接“贪心”地对高度进行排序,这样就能够保证充分利用列可移动的条件得到.原创 2021-01-19 09:16:58 · 303 阅读 · 0 评论 -
剑指 Offer 09. 用两个栈实现队列【栈+队列】
文章目录题目描述知识点我的实现码前思考代码实现时空复杂度分析码后反思参考文档题目描述知识点栈,队列,设计我的实现码前思考数据结构模拟题代码实现//使用两个栈来实现队列//入队列就是入栈,出队列就是转移栈,然后弹出最上面那个class CQueue {public: stack<int> pushSt; stack<int> popSt; CQueue() { } void appendTail.原创 2021-01-15 22:33:12 · 120 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表【链表】
文章目录题目描述知识点我的实现结果码前思考代码实现码后反思题目描述知识点链表我的实现结果码前思考不想使用stack,直接使用数组;代码实现/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; *///时间复杂度和空间复杂度.原创 2021-01-07 19:34:32 · 65 阅读 · 0 评论 -
LeetCode 84. Largest Rectangle in Histogram【单调栈模板题】⭐⭐⭐⭐⭐
文章目录题目描述知识点我的实现码前思考代码实现码后反思题目描述84. Largest Rectangle in Histogram知识点单调栈我的实现码前思考由于不小心看见了提示,知道了得用单调栈来解题。。。罪过啊思想就是一个一组连续的矩形,它们能构成的长方形一定是取决于最低点的,所以只需要将每个矩形当作最低点,然后求它们向左向右最大能够延申多长即可。代码实现//使用单调栈进行解题class Solution {public: int largestRectangleAr.原创 2020-09-06 15:54:14 · 138 阅读 · 0 评论 -
⭐⭐⭐⭐⭐【单调栈/动态规划】LeetCode 85. Maximal Rectangle
文章目录题目描述(困难难度)解法一 暴力破解解法二 单调栈我的实现结果代码码后反思本文完全摘抄自 【详细通俗的思路分析,多解法】题目描述(困难难度)给一个只有 0 和 1 的矩阵,输出一个最大的矩形的面积,这个矩形里边只含有 1。解法一 暴力破解参考这里,遍历每个点,求以这个点为矩阵右下角的所有矩阵面积。如下图的两个例子,橙色是当前遍历的点,然后虚线框圈出的矩阵是其中一个矩阵。怎么找出这样的矩阵呢?如下图,如果我们知道了以这个点结尾的连续 1 的个数的话,问题就变得简单了。首先求.原创 2020-08-02 22:15:16 · 117 阅读 · 0 评论 -
⭐⭐⭐⭐⭐【单调栈】LeetCode 84. 柱状图中最大的矩形
文章目录题目描述知识点我的实现结果码前思考代码实现码后反思题目描述给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。示例:输入: [2,1,5,6,2,3]输出: 10知识点单调栈我的实现结果码前思考我第一次写的时候知道这是一个单调栈的题.原创 2020-08-02 20:33:40 · 99 阅读 · 0 评论 -
【栈】LeetCode 394. Decode String
文章目录题目描述知识点结果实现码前思考代码实现码后反思题目描述知识点栈结果实现码前思考这种涉及到括号匹配的字符串题目,一看就是要用栈。代码实现//这种涉及到括号匹配的字符串题目,一看就是要用栈。class Solution {public: string decodeString(string s) { //使用string来模拟栈 string ans; for(auto c : s){ .原创 2020-08-01 22:05:11 · 73 阅读 · 0 评论 -
⭐⭐⭐⭐⭐单调栈
文章目录定义例子题型训练⭐⭐⭐⭐⭐参考文档定义小伙伴们都应该非常熟悉栈,栈的一个很鲜明的性质就是:先进后出 。而所谓 单调栈 则是在栈的 先进后出 基础之上额外添加一个特性:从栈顶到栈底的元素是严格递增(or递减)。具体进栈过程如下:对于单调递增栈,若当前进栈元素为 e,从栈顶开始遍历元素,把小于 e 或者等于 e 的元素弹出栈,直接遇到一个大于 e 的元素或者栈为空为止,然后再把 e 压入栈中。对于单调递减栈,则每次弹出的是大于 e 或者等于 e 的元素。例子以 单调递增栈 为例进行说原创 2020-07-28 21:24:18 · 105 阅读 · 0 评论 -
⭐【单调栈/哈希/暴力】LeetCode 739. Daily Temperatures
文章目录题目描述知识点结果实现码前思考代码实现码后反思单调栈解题题目描述知识点居然知识点是 栈和哈希表 ,呜呜呜结果实现码前思考我使用的是暴力的方法,从右到左遍历,不过使用一个数组记录了当前位置的warmer positon是哪个,所以解法就没有两层for循环那么纯暴力了。代码实现//题目就是找某个数右边第一个比它大的数。。。//我也不太清楚非暴力的写法怎么做。。。只会从右往左暴力遍历class Solution {public: vector<int>.原创 2020-07-28 21:23:04 · 77 阅读 · 0 评论 -
LeetCode 155. Min Stack【栈+设计/辅助栈+空间换时间】⭐⭐⭐
文章目录题目描述知识点结果实现码前思考代码实现码后反思题目描述知识点栈、设计结果实现码前思考使用vector来实现栈;使用priority_queue来实时的保存最小值;代码实现class MinStack {public: vector<int> st; priority_queue<int,vector<int>,greater<int>> q; //使用优先队列存储最小值 int minVal; .原创 2020-07-25 20:55:58 · 72 阅读 · 0 评论 -
LeetCode 32. Longest Valid Parentheses【动态规划+栈+括号匹配】⭐⭐⭐⭐⭐
文章目录题目描述知识点结果实现码前思考代码实现码后反思参考文档题目描述知识点栈、字符串匹配结果实现码前思考看见子串匹配问题,我想到的是滑动窗口,但是很遗憾,我没有找到解决办法;再然后看见最长,我想的是动态规划,毕竟是最优化问题嘛,但是也没有想清楚;最后,我偷偷看了一下提示,才发现栈,原来之前也是做过括号匹配的题目的,用的就是栈,于是我就想怎么用栈来解决这个问题。思路是...原创 2020-04-25 15:03:21 · 130 阅读 · 0 评论 -
LeetCode 20. Valid Parentheses【栈+括号匹配】
文章目录题目描述知识点结果实现码前思考代码实现码后反思参考文档题目描述知识点字符串、栈结果实现码前思考是我们在刚刚入门栈这种数据结构时都会讲的表达式求值问题的低级版,话说我现在好像还不会表达式求值????后面一定要补上!代码实现//类似于表达式求值//只不过这个表达式求值会更加地简单一些class Solution {public: bool isValid(...原创 2020-04-24 14:45:36 · 108 阅读 · 0 评论