![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
栈与队列
栈与队列
alone_yue
后端开发 算法 爱好健身打球游泳
展开
-
【Leetcode栈与队列--最小栈】155.最小栈
【Leetcode栈与队列--最小栈】155.最小栈。原创 2022-07-18 11:37:06 · 296 阅读 · 0 评论 -
【Leetcode栈与队列--广度遍历(求连通块)】200. 岛屿数量
【Leetcode栈与队列--广度遍历(求连通块)】200. 岛屿数量原创 2022-07-02 16:15:30 · 127 阅读 · 0 评论 -
【Leetcode栈与队列】验证括号序列是否合法
文章目录1.问题描述2.解决方案解法一:使用栈解法二:计数法1.问题描述验证一串括号序列是否合法,比如 “()” 合法,“()())(” 不合法2.解决方案解法一:使用栈boolean judge_stack(String str){ Stack<Character> stack = new Stack<>(); for (int i = 0; i <str.length() ; i++) { Character characte原创 2022-01-19 18:32:28 · 4403 阅读 · 2 评论 -
【Leetcode栈与队列】946. 验证栈序列
文章目录Leetcode9461.问题描述2.解决方案Leetcode9461.问题描述2.解决方案其实代码实现起来思路就是1.把push序列一个一个push进去,最关键的一个点就是值是不重复的,所以一旦你栈顶和pop队列值相等了那就一定是它pop出去的,那你就如果相当一直pop2.最后如果pop序列是对的,一定下标会走完数组。最后加个判断就好public class lc946 { public boolean validateStackSequences(int[] pus原创 2021-11-28 16:37:08 · 220 阅读 · 1 评论 -
【Leetcode栈与队列】347. 前 K 个高频元素(有对map的value排序的两种方法!!)
文章目录Leetcode3471.问题描述2.解决方案代码实现1:vector排序代码实现2:优先队列Leetcode3471.问题描述2.解决方案1.统计频率使用map没什么好说的2.排序找出前K个可以使用vector排序或者优先队列代码实现1:vector排序class Solution {public: static bool cmp(pair<int,int> a,pair<int,int> b){ return a.seco原创 2021-10-11 16:45:37 · 57 阅读 · 1 评论 -
【Leetcode栈与队列】239. 滑动窗口最大值(单调队列的经典运用!!)
文章目录Leetcode2391.问题描述2.解决方案解法一:暴力(可行,太慢)解法二:优先队列(不可行)解法三:维护一部分元素的单调队列(可行)前导分析:引出问题:解决问题:1.维护部分元素的单调队列2.如何维护部分元素的单调队列3.如何配合窗口移动产生的移除元素代码实现:Leetcode2391.问题描述2.解决方案解法一:暴力(可行,太慢)解法二:优先队列(不可行)解法三:维护一部分元素的单调队列(可行)前导分析:引出问题:1,然后再分析一下,队列里的元素一定是要原创 2021-10-11 12:20:12 · 77 阅读 · 1 评论 -
【Leetcode栈与队列】150. 逆波兰表达式求值(后缀表达式求值,看作对对碰游戏)
文章目录Leetcode1501.问题描述2.解决方案计算机的思考方式:Leetcode1501.问题描述2.解决方案1.逆波兰表达式优点2.逆波兰表达式相当于是二叉树中的后序遍历,又是一个类似对对碰的题目class Solution {public: int evalRPN(vector<string>& tokens) { stack<int> s; for (string item: tokens)原创 2021-10-11 09:46:43 · 4005 阅读 · 1 评论 -
【Leetcode栈与队列】1047.删除字符串中的所有相邻重复项 6120.数组能形成多少数对(一些题外话和做题经验!!看作对对碰游戏!!)
文章目录Leetcode10471.问题描述2.解决方案Leetcode10471.问题描述2.解决方案class Solution {public: string removeDuplicates(string s) { //1.先将s遍历加入栈,如果和栈顶相同就跳过并且把栈顶也删除 stack<char> stack; for (auto item: s) { if(stack.empty()==原创 2021-10-11 09:02:46 · 3872 阅读 · 1 评论 -
【Leetcode栈与队列】20. 有效的括号
文章目录Leetcode201.问题描述2.解决方案解法一:通过分析不匹配情况进行代码实现解法二:栈解法三:栈(官方优化)Leetcode201.问题描述2.解决方案解法一:通过分析不匹配情况进行代码实现class Solution {public: bool isValid(string s) { stack<int> st; for (int i = 0; i < s.size(); i++) { i原创 2021-10-10 21:31:27 · 83 阅读 · 1 评论 -
【Leetcode栈与队列】225. 用队列实现栈
文章目录Leetcode2251.问题描述2.解决方案(1)思路:(2)画图解释:(3)代码实现:版本一:两个队列实现栈版本二:一个队列实现栈Leetcode2251.问题描述2.解决方案动画模拟!(1)思路:(2)画图解释:(3)代码实现:版本一:两个队列实现栈class MyStack {private: queue<int> q1; queue<int> q2;public: MyStack() { }原创 2021-10-10 21:15:44 · 89 阅读 · 1 评论 -
【Leetcode栈与队列】232. 用栈实现队列
文章目录Leetcode2321.问题描述2.解决方案一点点开发经验:Leetcode2321.问题描述2.解决方案1.使用栈来模式队列的行为,如果仅仅用一个栈,是一定不行的,所以需要两个栈一个输入栈,一个输出栈,这里要注意输入栈和输出栈的关系。2.在push数据的时候,只要数据放进输入栈就好,但在pop的时候,操作就复杂一些,输出栈如果为空,就把进栈数据全部导入进来(注意是全部导入),再从出栈弹出数据,如果输出栈不为空,则直接从出栈弹出数据就可以了。3.最后如何判断队列为空呢?如果进栈和原创 2021-10-10 20:46:08 · 63 阅读 · 1 评论 -
【Leetcode栈与队列】栈与队列理论基础
文章目录1.原理2.四个关于栈的问题以及STL版本问题3.队列1.原理队列是先进先出,栈是先进后出!2.四个关于栈的问题以及STL版本问题3.队列原创 2021-10-10 14:30:20 · 92 阅读 · 1 评论