当前位置:网站首页>Come n times - 09. Implement queues with two stacks
Come n times - 09. Implement queues with two stacks
2022-07-31 09:20:00 【Qin Yu】
专栏前言:
本专栏主要是算法训练,目的很简单.在掌握基本的java知识后,学习最重要的算法知识,在学习之前首先要对自身有一定的理解,如果不知道怎么做欢迎来私聊.
算法的过程很枯燥,但是也很特别,不断地刷题,不断地分享才会越来越好,给别人讲明白才是真正学会了.在分享中学会知识.
坚持就是胜利~~~
题目描述:
用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能.(若队列中没有元素,deleteHead 操作返回 -1 )
示例1:
输入:
["CQueue","appendTail","deleteHead","deleteHead"]
[[],[3],[],[]]
输出:[null,null,3,-1]
示例2:
输入:
["CQueue","deleteHead","appendTail","appendTail","deleteHead","deleteHead"]
[[],[],[5],[2],[],[]]
输出:[null,-1,null,null,5,2]
限制:
1 <= values <= 10000
最多会对 appendTail、deleteHead 进行 10000 次调用
解题1:
class CQueue {
LinkedList<Integer> stack1;
LinkedList<Integer> stack2;
public CQueue() {
stack1 = new LinkedList<>();
stack2 = new LinkedList<>();
}
public void appendTail(int value) {
stack1.add(value);
}
public int deleteHead() {
if(stack2.isEmpty()){
if(stack1.isEmpty()){
return -1;
}
while(!stack1.isEmpty()){
stack2.add(stack1.pop());
}
return stack2.pop();
}else{
return stack2.pop();
}
}
}
/** * Your CQueue object will be instantiated and called as such: * CQueue obj = new CQueue(); * obj.appendTail(value); * int param_2 = obj.deleteHead(); */
课后习题:
没有啦
边栏推荐
猜你喜欢
随机推荐
js right dot single page scrolling introduction page
MUI获取相机权限
Scala基础【seq、set、map、元组、WordCount、队列、并行】
六、MFC文档类(单文档和多文档)
2022 Hangzhou Electric Cup Super League 3
[NLP] Interpretation of Transformer Theory
【RISC-V】risc-v架构学习笔记(架构初学)
loadrunner-controller-场景执行run
SSM integration case study (detailed)
服务器上解压文件时提示“gzip: stdin: not in gzip format,tar: Child returned status 1,tar: Error is not recovera“
搭建frp进行内网穿透
spark filter
MySQL----多表查询
Scala basics [seq, set, map, tuple, WordCount, queue, parallel]
jupyter notebook初使用
Linux安装mysql
Job hunting product manager [9] How to write a good resume in job hunting season?
混合型界面:对话式UI的未来
mysql 数据去重的三种方式[实战]
一次Spark SQL线上问题排查和定位