当前位置:网站首页>来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(); */
课后习题:
没有啦

边栏推荐
- SQL statement knowledge
- [转载] Virtual Studio 让系统找到需要的头文件和库
- The torch distributed training
- Docker-compose安装mysql
- [Mini Program Project Development--Jingdong Mall] Custom Search Component of uni-app (Middle)--Search Suggestions
- 【小程序项目开发-- 京东商城】uni-app之自定义搜索组件(中)-- 搜索建议
- 云服务器部署 Web 项目
- 【插值与拟合】
- Flutter Paystack implements all options
- 剑指offer-解决面试题的思路
猜你喜欢

[What is the role of auto_increment in MySQL?】

多版本node的安装与切换详细操作

科目三:前方路口直行

TypeError The view function did not return a valid response. The function either returned None 的解决

ecshop安装的时候提示不支持JPEG格式

How to Install MySQL on Linux

日志导致线程Block的这些坑,你不得不防

六、MFC文档类(单文档和多文档)
![[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

科目三:左转弯
随机推荐
科目三:右转弯
[What is the role of auto_increment in MySQL?】
【小程序项目开发-- 京东商城】uni-app之商品列表页面 (上)
蚂蚁核心科技产品亮相数字中国建设峰会 持续助力企业数字化转型
Define event types in Splunk Web
关于挂载EXfat文件格式U盘失败的问题
优信年营收16亿:亏损3亿 已与蔚来资本及58集团签署股权协议
35-Jenkins-Shared library application
sqlmap使用教程大全命令大全(图文)
Feign介绍
skynet中一条消息从取出到处理完整流程(源码刨析)
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!
matlab常用符号用法总结
搭建frp进行内网穿透
Vulkan与OpenGL对比——Vulkan的全新渲染架构
[MySQL exercises] Chapter 2 Basic operations of databases and data tables
A brief introduction to the SSM framework
普通函数的参数校验
C# 正则表达式汇总
jupyter notebook初使用