类型总结之——栈与队列
栈与队列
Mona______
好好学习天天向上 o(≧v≦)o
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
栈与队列总结点睛
栈 stack 队列 queue 1、栈 & 队列 1、stack和queue都不是容器,而是容器适配器 2、Standard Template Library ,即STL标准模板库,C++中三个最为普遍的STL版本: 1、HP STL 这个是 c++ STL的第一个实现版本,但不够成熟 2、P.J.Plauger STL 被visual c++编译器采用,不是开源的 3、SGI STL (常用的) Linux的C++编译器 GCC 所采用的,开源 通常我们所使用的的STL就是原创 2021-04-27 23:49:43 · 334 阅读 · 0 评论
-
leetcode——第347题——自己写不出来的 top-K 优先级队列+小顶堆+unordered_map
题目: 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按任意顺序返回答案。 class Solution { public: // 这里就是实现小顶堆 class mycomparison { public: bool operator()(const pair<int,int>& lhs,const pair<int,int>& rhs) {原创 2021-04-26 16:56:35 · 255 阅读 · 0 评论 -
leetcode——第239题——滑动窗口最大值/deque实现单调队列
题目: 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值 // carl大神思路 class Solution { private: // 声明一个 单调队列 class MyQueue { public: // 建立一个私有的类,注意别忘了声明权限为 private->public // 通过 dequ原创 2021-04-26 13:54:56 · 175 阅读 · 0 评论 -
leetcode——第150题——求逆波兰表达式
题目: 根据 逆波兰表示法,求表达式的值。 有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 class Solution { public: int evalRPN(vector<string>& tokens) { stack<int> st; int num1,num2;原创 2021-04-25 23:52:46 · 137 阅读 · 0 评论 -
leetcode——第1047题——删除字符串中的相邻重复子串
题目: 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 class Solution { public: string removeDuplicates(string S) { stack<int> st; for(int i=0; i<S.size(); i++) {原创 2021-04-25 22:36:15 · 627 阅读 · 0 评论 -
leetcode——第22题——括号匹配问题
题目: 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 class Solution { public: bool isValid(string s) { // 这里竟然用的是 int 类型的???不应该是char吗 stack<int> st; for(int i=0; i<s.size();原创 2021-04-25 22:17:26 · 221 阅读 · 0 评论 -
leetcode——第225题——双队列实现栈
题目: 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通队列的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。 int pop() 移除并返回栈顶元素。 int top() 返回栈顶元素。 boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。 注意: 你只能使用队列的基本操作 —— 也就是 push to back、peek/pop from front、siz原创 2021-04-25 21:27:29 · 395 阅读 · 0 评论 -
leetcode——第232题——双栈实现队列
题目: 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元素 int peek() 返回队列开头的元素 boolean empty() 如果队列为空,返回 true ;否则,返回 false 说明: 你只能使用标准的栈操作 —— 也就是只有 push to top, peek/pop from top, size原创 2021-04-25 20:43:01 · 175 阅读 · 0 评论
分享