栈和队列
文章平均质量分 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 · 239 阅读 · 0 评论 -
剑指 Offer 09. 用两个栈实现队列(Java)
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:示例 2:如果题目看不懂的话,可以看这道题的评论,有许多大佬讲的还是很清楚的,这里就不说了。题目说是用两个栈实现一个队列,首先得知道所以,我理解的尾插操作为用两个栈实现队列的先进先出。首先建立两个栈,其长度为0,表示其为空由于栈是先进后出,所以每插入一个元素,需要将其他的元原创 2022-06-11 22:11:20 · 426 阅读 · 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 · 71 阅读 · 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 · 71 阅读 · 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 · 318 阅读 · 0 评论 -
LeetCode20. 有效的括号
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = “()” 输出:true示例 2:输入:s = “()[]{}” 输出:true示例 3:输入:s = “(]” 输出:false示例 4:输入:s = “([)]” 输出:false示例 5:输入:s = “{[]}” 输出:true解析:本题使用栈方法原创 2022-05-11 09:37:49 · 140 阅读 · 0 评论