当前位置:网站首页>来n遍剑指--09. 用两个栈实现队列
来n遍剑指--09. 用两个栈实现队列
2022-07-31 08:57:00 【秦 羽】
专栏前言:
本专栏主要是算法训练,目的很简单。在掌握基本的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(); */
课后习题:
没有啦

边栏推荐
猜你喜欢

Flutter Paystack 所有选项实现

搭建frp进行内网穿透

【黄啊码】MySQL入门—3、我用select ,老板直接赶我坐火车回家去,买的还是站票

安装gnome-screenshot截图工具
![[MySQL exercises] Chapter 2 Basic operations of databases and data tables](/img/43/73a59a293d4708b6f9aeae990a7029.png)
[MySQL exercises] Chapter 2 Basic operations of databases and data tables

How to Install MySQL on Linux

SSM框架讲解(史上最详细的文章)

【小程序项目开发-- 京东商城】uni-app之自定义搜索组件(下) -- 搜索历史
![[MySQL exercises] Chapter 4 · Explore operators in MySQL with kiko](/img/11/66b4908ed8f253d599942f35bde96a.png)
[MySQL exercises] Chapter 4 · Explore operators in MySQL with kiko

02 Truffle TutorialToken 示例
随机推荐
5.for in 和 for of区别和使用
数组every和some方法的区别?
SQL语句知识大全
How to restore data using mysql binlog
I advise those juniors and juniors who have just started working: If you want to enter a big factory, you must master these core skills!Complete Learning Route!
MySQL----多表查询
六、MFC文档类(单文档和多文档)
2022杭电杯超级联赛3
【小程序项目开发-- 京东商城】uni-app之商品列表页面 (上)
7. JS ES6新增语法 new Map详讲,还有一道代码实战案例帮你快上手new Map
普通函数的参数校验
Vulkan与OpenGL对比——Vulkan的全新渲染架构
【插值与拟合】
科目三:前方路口直行
各位大佬,sqlserver 支持表名正则匹配吗
奉劝那些刚参加工作的学弟学妹们:要想进大厂,这些核心技能是你必须要掌握的!完整学习路线!
基于学生成绩管理系统(附源代码及数据库)
MySQL中InnoDB的多版本并发控制(MVCC)的实现
Feign介绍
利用frp服务器进行内网穿透ssh访问