栈和队列
文章平均质量分 70
春风又。
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 30. 包含min函数的栈(Java)
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。思路一:用栈实现:思路二:用数组实现:法一:用栈实现 法二:用数组实现 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/bao-han-minhan-shu-de-zhan-lcof 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...原创 2022-06-11 23:37:12 · 107 阅读 · 0 评论 -
剑指 Offer 09. 用两个栈实现队列(Java)
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:示例 2:如果题目看不懂的话,可以看这道题的评论,有许多大佬讲的还是很清楚的,这里就不说了。题目说是用两个栈实现一个队列,首先得知道 所以,我理解的尾插操作为用两个栈实现队列的先进先出。首先建立两个栈,其长度为0,表示其为空 由于栈是先进后出,所以每插入一个元素,需要将其他的元原创 2022-06-11 22:11:20 · 330 阅读 · 0 评论 -
LeetCode155. 最小栈
文章目录题目:思路代码 题目: 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void pop()删除堆栈顶部的元素。 int top() 获取堆栈顶部的元素。 int getMin() 获取堆栈中的最小元素。 示例 1: 输入: [“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“t原创 2022-05-11 18:40:42 · 54 阅读 · 0 评论 -
LeetCode232. 用栈实现队列
文章目录题目代码: 题目 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元素 int peek()返回队列开头的元素 boolean empty() 如果队列为空,返回 true ;否则,返回 false 说明: 你 只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop f原创 2022-05-11 17:55:36 · 48 阅读 · 0 评论 -
LeetCode225. 用队列实现栈
文章目录题目:思路:完整代码:代码分解: 题目: 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。 int pop() 移除并返回栈顶元素。 int top() 返回栈顶元素。 boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。 注意: 你只能使用队列的基本操作 —— 也就是 push to back、pee原创 2022-05-11 15:15:28 · 231 阅读 · 0 评论 -
LeetCode20. 有效的括号
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 示例 1: 输入:s = “()” 输出:true 示例 2: 输入:s = “()[]{}” 输出:true 示例 3: 输入:s = “(]” 输出:false 示例 4: 输入:s = “([)]” 输出:false 示例 5: 输入:s = “{[]}” 输出:true 解析: 本题使用栈方法原创 2022-05-11 09:37:49 · 72 阅读 · 0 评论