【简单】面试题09. 用两个栈实现队列

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

【题目】
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。若队列中没有元素,deleteHead 操作返回 -1。
来源:leetcode
链接:https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/
【示例1】
输入:
[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”]
[[],[3],[],[]]
输出:[null,null,3,-1]
【代码】

class CQueue {
public:
    stack<int> s1;
    stack<int> s2;
    CQueue() {
    }
    void appendTail(int value) {
        s1.push(value);
    }
    int deleteHead() {
        int x=-1;
        if(s1.size()==0&&s2.size()==0)
            return -1;
        else if(s2.size()==0){
            while(!s1.empty()){
                x=s1.top();
                s1.pop();
                s2.push(x);
            }            
        }
        x=s2.top();
        s2.pop();
        return x;
    }
};
/**
 * Your CQueue object will be instantiated and called as such:
 * CQueue* obj = new CQueue();
 * obj->appendTail(value);
 * int param_2 = obj->deleteHead();
 */
【Python】【难度:简单】Leetcode 面试题09.两个实现队列 两个实现一个队列队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(队列中没有元素,deleteHead操作返回 -1 ) 示例 1: 输入: ["CQueue","appendTail","deleteHead","deleteHead"] [[],[3],[],[]] 输出:[null,null,3,-1] 示例 2: 输入: ["CQueue","deleteHead","appendTai.. 阅读详情

相关推荐

面试题09两个实现队列

两个实现一个队列队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(队列中没有元素,deleteHead操作返回 -1 ) 示例 1: 输入: ["CQueue","appendTail","deleteHead","deleteHead"] [[],[3],[],[]] 输出:[null,nu...

memory_qianxiao的博客 475

面试题09:用两个实现队列

文章目录队列的模拟实现两个实现队列题目描述思路代码相关题目:用队列实现题目描述思路一:用两个队列思路二:只用一个队列 队列的模拟实现两个实现队列 232. Implement Queue using Stacks 题目描述 请用实现一个队列,支持如下四种操作: push(x) —— 将元素x插到队尾; pop() —— 将队首的元素弹出,并返回该元素; peek() —...

charlsonzhao的博客 388

剑指Offer 面试题09.两个实现队列

剑指Offer 面试题09.两个实现队列

TrueDei 1322

Leetcode刷题:剑指offer【面试题09两个实现队列

文章目录思路 1:双实现队列面试题09两个实现队列】 难度: 简单 限制: 1 <= values <= 10000,最多会对 appendTail、deleteHead 进行 10000 次调用 用两个实现一个队列队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(队列中没有元...

学习 & 分享 ~ 565

Leecode 面试题09两个实现队列

题目描述: 用两个实现一个队列队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(队列中没有元素,deleteHead 操作返回 -1 ) 示例 1: 输入: [“CQueue”,“appendTail”,“deleteHead”,“deleteHead”] [[],[3],[],[]] 输出:[nul...

子冉冰清的博客 548

面试题09.两个实现队列

面试题09.两个实现队列两个实现一个队列队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(队列中没有元素,deleteHead 操作返回 -1 ) 一个队列中的数两次经过,还是保持先进先出的性质。 如果我们让所有的数都顺序经过A和B,那么队列就仍然保持原来的性质。如果要删队列头部的数,那...

qq_41342326的博客 154

leetcode的python实现--剑指offer 09两个实现队列

剑指 Offer 09.两个实现队列 题目描述 用两个实现一个队列队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(队列中没有元素,deleteHead 操作返回 -1 ) 示例 1: 输入: [“CQueue”,“appendTail”,“deleteHead”,“deleteHead”] [[],[3],[],[]] 输出:[null,null,3,-1] 示例 2: 输入: [“CQueue”,“d

wu2020的博客 4027

剑指Offer面试题09:用两个实现队列

面试题09:用两个实现队列题目思路一(是线性表的顺序存储)思路二(是线性表的链式存储) 题目 用两个实现一个队列队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(队列中没有元素,deleteHead 操作返回 -1 ) 示例 1: 输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”] [[],[3],[],[]] 输出:[null,null,3,-1]

weixin_43859246的博客 634

LeetCode | 面试题09.两个实现队列【剑指Offer】【Python】

LeetCode 面试题09.两个实现队列【剑指Offer】【Easy】【Python】【】【队列

Wonz 825

面试题09:两个实现队列

首先大家需要了解一下,是先进后出,队列是先进先出,其实就是为了实现两个构成一个对象,实现队列的效果,即先进先出。对于力扣上的这道面试题的描述,我也是看的半懂,但是因为考虑到主要是提交对象算法,所以大家可以认为给的案例是实现的一个过程,告诉大家函数插入数据和提取数据的内部流转流程。接下来是代码,最后的主函数我用输入和输出给大家一个直观的看法。 """ title:面试题09两个实现队列...

hanxuwerewolf的博客 233

面试题09.两个实现队列【LeetCode剑指offer】

题目: 面试题09.两个实现队列 思路 两个,一个size(队列中数据的数量) 入队列直接压入1,并且size++; 出队列时,先判断size是否为0,若size 为 0,则说明队列空,返回-1; 否则直接取出2的顶元素,若2为空,则把1 的所有元素一次性出压入2,此时2,按顺序弹出则是队列队列的顺序,先进先出;出队列时,要相应的的size–; 实现: class ...

江璇Up 767

剑指Offer面试题09两个实现队列

算法不是金庸武侠小说里硬核的”九阳真经“,也不是轻量的”凌波微步“,它是程序员的基本功,如同练武之人需要扎马步一般。功夫好不好,看看马步扎不扎实;编程能力强不强,看看算法能力有没有。本系列采用leetcode题号,使用JavaScript为编程语言,每篇文章都会逐步分析解题思路,最终给出代码。文章一方面是记录笔者在刷题中的思路,已备学而时习之,另一方面也希望能跟大牛们多交流。有更高效的解法,或者文章有什么问题,都欢迎提出来,望诸位不吝赐教。 目录一、题目:用两个实现队列二、小马甲思路2.1 理解题目2.

wuxeek的博客 502

⭐算法入门⭐《队列简单01 —— LeetCode 232.实现队列

队列简单01 —— LeetCode 232.实现队列

英雄哪里出来 4686

9.两个实现队列

文章目录剑指offer 09两个实现队列解题思路解法一解法二第九题扩展题1 用实现队列 LeetCode232232.实现队列解题思路解法一解法二第九题扩展题2 用两个队列实现 LeetCode225225.队列实现解题思路小结 剑指offer 09两个实现队列两个实现一个队列队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(队列中没有元素,deleteHead 操作返回

YouMing_Li的博客 1255

面试题09.两个实现队列

面试题09.两个实现队列 题目描述 用两个实现一个队列队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(队列中没有元素,deleteHead 操作返回 -1 ) 示例 1: 输入: [“CQueue”,“appendTail”,“deleteHead”,“deleteHead”] [[],[3],...

weixin_44458246的博客 152

剑指Offer 09:用两个实现队列

剑指Offer 09:用两个实现队列题干怎么想图片实现代码实现 题干   用两个实现一个队列队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(队列中没有元素,deleteHead 操作返回 -1 ) 示例1: - 输入: ["CQueue","appendTail","deleteHead","deleteHead"] [[],[3],[],[]] 输出:[null,null,3,-1] 示例2: 输入

weixin_49870878的博客 353

【剑指offer09】【C++】用两个实现队列

【剑指offer09】【C++】用两个实现队列题目题解 题目 用两个实现一个队列队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(队列中没有元素,deleteHead 操作返回 -1 ) 示例 1: 输入: ["CQueue","appendTail","deleteHead","deleteHead"] [[],[3],[],[]] 输出: [null,null,3,-1] 示例 2: 输入: ["CQ

程序员阿浪 367
上一篇: 【简单】942. 增减字符串匹配
下一篇: 【简单】1374. 生成每种字符都是奇数个的字符串
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值