![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode-栈和队列
LeetCode-栈和队列
欢脱的婷子
每天努力一点点!
展开
-
剑指offer -- 用两个栈实现队列
leetcode链接:https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:["CQueue","appendTail","deleteHead","deleteH原创 2020-07-30 09:28:28 · 69 阅读 · 0 评论 -
LeetCode # 503 循环数组中比当前元素大的下一个元素
给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例 1:输入: [1,2,1]输出: [2,-1,2]解释: 第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大的数;第二个 1 的下一个最大的数需要循环搜索,结果也是 2。解题思路:这道题与上一题中寻找数组中下一个比它大的元素之原创 2020-05-26 09:15:42 · 602 阅读 · 0 评论 -
LeetCode # 739 数组中元素与下一个比它大的元素之间的距离
根据每日气温列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用0来代替。例如,给定一个列表temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是[1, 1, 4, 2, 1, 1, 0, 0]。解题思路:其实这道题的根本就是寻找数组中每一个元素距离下一个比它大的元素之间的距离。可以采用一个栈来辅助,遍历数组,压入栈中,若当前遍历的数组元素,比栈顶的元素大,那么这...原创 2020-05-25 19:45:34 · 507 阅读 · 0 评论 -
LeetCode # 20 用栈实现括号匹配
给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false示例4:输入: "([)]"输出: false解题思路:用栈来检验括号,这应该是我们学习栈的时候必学的一道例题了...原创 2020-05-25 19:34:30 · 169 阅读 · 0 评论 -
LeetCode # 155 最小值栈
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop()—— 删除栈顶的元素。top()—— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,nul..原创 2020-05-25 19:25:48 · 116 阅读 · 0 评论 -
LeetCode # 225 用队列实现栈
使用队列实现栈的下列操作:push(x) -- 元素 x 入栈pop() -- 移除栈顶元素top() -- 获取栈顶元素empty() -- 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是push to back, peek/pop from front, size, 和is empty这些操作是合法的。你所使用的语言也许不支持队列。你可以使用 list 或者 deque(双端队列)来模拟一个队列, 只要是标准的队列操作即可。你可以假设所有操作都是有效的(例如, 对...原创 2020-05-25 19:12:52 · 77 阅读 · 0 评论 -
LeetCode # 232 用栈实现队列
使用栈实现队列的下列操作:push(x) -- 将一个元素放入队列的尾部。pop() -- 从队列首部移除元素。peek() -- 返回队列首部的元素。empty() -- 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2); queue.peek(); // 返回 1queue.pop(); // 返回 1queue.empty(); // 返回 false解题思路:栈的特...原创 2020-05-24 10:46:37 · 85 阅读 · 0 评论