java 栈与队列记录

java 中得队列是利用LinkedList来实现得,LinkedList是一种链表结构,方便插入和删除,不方便查询。java中的栈有直接的类是stack,这个我在之前很少用到。

看到很多人都在说java中 stack是继承的vector的,效率和性能都不高,因此使用的是Deque(double-ended queue)就是两端都可以进出。如果要作为栈的花只让调用offerFirst和pollFirst即可
创建方法如下:
Deque d= new ArrayDeque();
判断是否为空的方法是:d.isEmpty();
获取顶部元素的方法是:d.getFirst();

在刷栈的leecode题目时,目前遇到的点有三个:
1.是辅助栈的方法(利用空间换时间)
这个是在最小栈的题目中看到的。当时想的有点复杂。结果他直接使用了两个栈来做,也就是辅助栈
2.一个变量+计算差值的方式来存储
这个方式是其他网友在最小栈下评论的,通过一个变量和每次入栈时计算差值的方式,来减小了空间消耗,出栈时也需要通过差值,计算出之前的值
3.单调栈
这个在柱状图最大矩形和下一个更大元素的题里遇到了。基本上都需要其他数据结构,数组或者map之类的来存储在出栈时,需要保存的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值