
栈
栈相关的题目
ZQQ~BK
这个作者很懒,什么都没留下…
展开
-
每日温度
题目描述: 根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。 class Solution { public int[] dailyTemperatures(int[] T) { Stack<Inte原创 2020-05-22 08:49:39 · 119 阅读 · 0 评论 -
最小栈
题目: 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) – 将元素 x 推入栈中。 pop() – 删除栈顶的元素。 top() – 获取栈顶元素。 getMin() – 检索栈中的最小元素。 方法一: 同步栈:用两个栈,一个用来存储数据,另一个单调栈用来存储最小值, 每次向数据栈data里面入栈时,将栈里面的最小值存入单调栈中,因此需要判断每次...原创 2020-01-17 18:56:14 · 99 阅读 · 0 评论 -
有效的括号
题目: 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 方法:使用栈。遇到左括号就入栈,遇到右括号就比较是否和栈顶括号相等,如果相等就出栈,最终判断栈是否为空,空则匹配 class Solution { public bo...原创 2020-01-17 12:40:03 · 108 阅读 · 0 评论 -
股票价格跨度
class StockSpanner { List list; public StockSpanner() { list=new ArrayList<Integer>(); } public int next(int price) { int count=0; list.add(price); ...原创 2020-01-13 17:11:19 · 254 阅读 · 0 评论 -
逆波兰表达式求值
题目: 根据逆波兰表示法,求表达式的值。 有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 class Solution { public int evalRPN(String[] tokens) { Stack<Integer> s=new Stack(); for(String str:token...原创 2020-01-13 14:05:37 · 89 阅读 · 0 评论 -
棒球比赛
题目:你现在是棒球比赛记录员。 给定一个字符串列表,每个字符串可以是以下四种类型之一: 1.整数(一轮的得分):直接表示您在本轮中获得的积分数。 2. “+”(一轮的得分):表示本轮获得的得分是前两轮有效 回合得分的总和。 3. “D”(一轮的得分):表示本轮获得的得分是前一轮有效 回合得分的两倍。 4. “C”(一个操作,这不是一个回合的分数):表示您获得的最后一个有效&nb...原创 2020-01-12 22:17:26 · 248 阅读 · 0 评论 -
用栈实现队列
题目: 使用栈实现队列的下列操作: push(x) – 将一个元素放入队列的尾部。 pop() – 从队列首部移除元素。 peek() – 返回队列首部的元素。 empty() – 返回队列是否为空。 方法一: 用两个栈实现队列,新元素总是压入 s1 的栈顶,同时我们会把 s1 中压入的第一个元素赋值给作为队首元素的 flag 变量。用s2实现出队,s1 中第一个压入的元素在栈底。为了弹出 s1 ...原创 2020-01-17 16:37:16 · 124 阅读 · 0 评论 -
用队列实现栈
题目: 使用队列实现栈的下列操作: push(x) – 元素 x 入栈 pop() – 移除栈顶元素 top() – 获取栈顶元素 empty() – 返回栈是否为空 方法一: 用两个队列q1和q2实现栈,q1用来入栈,q2用来出栈,定义一个top用来标记栈顶元素。出栈时,将q1中的n-1个元素出栈,然后从q2入栈,最后将第n个元素出栈,交换两个队列的元素 class MyStack { ...原创 2020-01-17 15:42:24 · 110 阅读 · 0 评论 -
栈的压入、弹出序列
题目: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) import java.util.*; public class Solution {...原创 2020-01-13 13:28:23 · 90 阅读 · 0 评论 -
比较含退格的字符串
题目要求:给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。 方法一: 这个方法比较简单,用两个栈分别保存#抵消后的字符串,然后将栈转换为字符串,比较两个字符串是否相等即可 class Solution { public boolean backspaceCompare(String S, String T) { ...原创 2020-01-12 20:52:38 · 126 阅读 · 0 评论