![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
栈
栈算法
sakurahzy
这个作者很懒,什么都没留下…
展开
-
栈的最小元素
构建一个栈,使其有查找最小元素的功能数据栈+辅助栈class MinStack { /** initialize your data structure here. */ private Stack<Integer> dataStack; private Stack<Integer> minStack; private int m...原创 2018-11-03 10:32:16 · 169 阅读 · 0 评论 -
用栈判断是否对称的字符串
先进入字符串括号的前半部分,然后依次弹出前半部分的元素,看与后半部分的元素是否对称,可以用于判断是否是偶数对称回文class Solution { public boolean isValid(String s) { /*对以一个字符串,采用栈的思想 如果是以(、{、[、开始的,则先存入栈中;在匹配是否有对称的 如果不是这几个字符串,...原创 2018-11-03 11:07:23 · 2688 阅读 · 0 评论 -
数组中元素与下一个比它大的元素之间的距离
栈/*用辅助数组存储差值;用栈存储数组元素,如果遇到后面的元素大于前一个元素,就弹出栈中的元素*/也就是说,利用栈;先判断相邻的两个数组的大小;如果后一个元素大于前一个元素preIndex,就让辅助数组中Preindex的值为1;如果当前元素不大于前一个元素;就移动数组;判断当前元素与他的后一个元素大小;满足条件,就判断next和pre的大小,依次进行peek()表示栈顶元素pop()...原创 2018-11-04 10:51:21 · 825 阅读 · 0 评论 -
两个栈实现一队列:
两个栈实现一队列:要加入辅助栈,进行反转操作栈的顺序为后进先出,而队列的顺序为先进先出。使用两个栈实现队列,一个元素需要经过两个栈才能出队列,在经过第一个栈时元素顺序被反转,经过第二个栈时再次被反转,此时就是先进先出顺序。class MyQueue { Stack<Integer> in=new Stack<>(); Stack<Inte...原创 2018-11-02 11:15:12 · 86 阅读 · 0 评论 -
队列实现一个栈
当插入一个元素时,要实现后进元素先出,需要把该元素之前的元素先出队列,重新进入队列的尾部。此时就实现了后进先出队列插入class MyStack { Queue<Integer> queue; /** Initialize your data structure here. */ public MyStack() { queue=ne...原创 2018-11-02 11:24:03 · 116 阅读 · 0 评论