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

边栏推荐
- 搭建frp进行内网穿透
- 如何升级nodejs版本
- 高并发高可用高性能的解决方案
- TypeError The view function did not return a valid response. The function either returned None 的解决
- MySQL 数据库基础知识(系统化一篇入门)
- 安装sambe
- mysql 数据去重的三种方式[实战]
- Linux安装mysql
- 服务器上解压文件时提示“gzip: stdin: not in gzip format,tar: Child returned status 1,tar: Error is not recovera“
- 求职产品经理【九】求职季,如何写好一份简历?
猜你喜欢

蚂蚁核心科技产品亮相数字中国建设峰会 持续助力企业数字化转型

如何在 Linux 上安装 MySQL

期刊投递时的 Late News Submission 是什么

2019 NeurIPS | Graph Convolutional Policy Network for Goal-Directed Molecular Graph Generation

0730~Mysql优化

MySQL 的几种碎片整理方案总结(解决delete大量数据后空间不释放的问题)

How to Install MySQL on Linux

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!

torch分布式训练

科目三:右转弯
随机推荐
一、MySQL主从复制原理
MySQL 高级(进阶) SQL 语句 (一)
MySQL 排序
普通函数的参数校验
2022 Hangzhou Electric Cup Super League 3
【问题记录】TypeError: eval() arg 1 must be a string, bytes or code object
The torch distributed training
HTC官方RUU固件提取刷机包rom.zip以及RUU解密教程
模块化规范
【MySQL功法】第4话 · 和kiko一起探索MySQL中的运算符
[Cloud native] Introduction and use of Feign of microservices
【云原生与5G】微服务加持5G核心网
【云原生&微服务五】Ribbon负载均衡策略之随机ThreadLocalRandom
How on one machine (Windows) to install two MYSQL database
torch分布式训练
mysql安装教程【安装版】
MySQL中InnoDB的多版本并发控制(MVCC)的实现
[Mini Program Project Development--Jingdong Mall] Custom Search Component of uni-app (Part 1)--Component UI
[转载] Virtual Studio 让系统找到需要的头文件和库
基于学生成绩管理系统(附源代码及数据库)