用两个栈实现队列

题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

分析

  • 首先可以自己尝试使用1 2 3少量元素的入栈出栈摸索两个栈的使用,从特殊到一般
  • 最开始出栈的时候将栈1的元素弹出再次压进栈2,然后栈2此时最顶上的元素是最开始进来的元素,弹出即可
  • 对于一般情况下的出栈:如果栈2不为空,弹出栈2栈顶元素;如果栈2位空,将栈1所有的元素依次压入栈2
  • 对于入栈:直接压入栈1即可
import java.util.Stack;public class Solution {Stack<Integer> stack1 = new Stack<Integer>();Stack<Integer> stack2 = new Stack<Integer>();public void push(int node) {stack1.push(node);}public int pop() {if(stack2.size() != 0){return stack2.pop();}while(stack1.size() != 0){stack2.push(stack1.pop());}int res = stack2.pop();return res;}
}

剑指Offe面试题:用两个栈实现队列相关推荐

  1. 剑指offer系列-09.用两个栈设计队列

    剑指offer系列第09题.用两个栈设计队列 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead , 分别完成在队列尾部插入整数和在队列头部删除整 ...

  2. 剑指Offer对答如流系列 - 用两个栈实现队列

    面试题8:用两个栈实现队列 一.题目描述 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能. 二 ...

  3. leetcode刷题之 剑指offe 面试题05. 替换空格 犯傻记录

    2020.3.6 刷到剑指offer第5题,题目描述如下: 题目本身没啥好说的,就是先统计空格的个数,然后把长度增加,用两个指针从后往前插. 采用m = s.count(' ',0,len(s)-1) ...

  4. 剑指offe面试题19——正则表达式匹配

    题目: 请实现一个函数用来匹配包含'.'和'*'的正则表达式.模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意多次(含0次).在本题中,匹配是指字符串的所有字符匹配整个模式.例 ...

  5. 剑指offer面试题[37]-两个链表的第一个公共结点

    题目描述 输入两个链表,找出它们的第一个公共结点. /* struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), ...

  6. 剑指offer面试题52. 两个链表的第一个公共节点(双指针法)

    题目描述 输入两个链表,找出它们的第一个公共节点. 思路 详见链接 代码 class Solution:def getIntersectionNode(self, headA:ListNode, he ...

  7. 剑指offe面试题8 旋转数组的最小数字 (java实现)

    解题思路: 针对旋转数组的特点,即旋转后,数组的前半部分是有序的,后半部分是有序的. 1.先考虑一般情况:可以参考二分查找的思想,在数组中设置两个指针,一个指向数组的起始位置,一个指向数组的结束位置. ...

  8. 剑指offe 面试题5, 从尾到头打印链表

    输入一个链表的头结点,从尾到头反过来打印每个结点的值. C++版本 struct ListNode {int m_nKey;ListNode* m_pNext; }; 方法1 使用栈的先进后出,将每个 ...

  9. c++ 队列_Day 5:用两个栈实现队列

    剑指Offer_编程题--用两个栈实现队列 题目描述: 用两个栈来实现一个队列,完成队列的push和pop操作.队列中的元素为int类型 具体要求: 时间限制: C/C++ 1秒,其他语言2秒 空间限 ...

最新文章

  1. 【原创】Python 源文件编码解读
  2. 谭浩强C程序设计第四版答案
  3. 电信运营商 IT 系统介绍
  4. linux 删除小于、大于固定大小的文件
  5. BLE-NRF51822教程11-手机动态修改设备名
  6. C#进阶之WebAPI(一)
  7. log4j记录不同的日志_Spring boot中使用log4j记录日志
  8. 验毛坯房要注意什么?
  9. mysql hang_mysql hang
  10. linux c 获取文件大小
  11. BMP390高精度压力传感器数据读取与处理(基于STM32)
  12. Selenium自动化下载文件Firefox配置教程
  13. c# ListView增加条目
  14. 防火墙——隧道技术类型
  15. 通过搜索引擎快速寻找漏洞
  16. 失无所失的伤感空间日志分享:我会一直这样爱着你,心甘情愿
  17. auc指标含义的理解
  18. 论文阅读——用于脑机接口的运动意图和运动想象脑电数据分析研究
  19. 力扣(LeetCode)433. 最小基因变化(2023.03.07)
  20. The power of habits 1

热门文章

  1. 审视AI界的“SOTA成瘾”丨AI学者万字论述
  2. vue项目中eslint规则校验配置
  3. 程序员的数学思维修炼(趣味解读)还有哪些进制
  4. 基于jsp、javaweb、ssm的bbs论坛
  5. 利用原生写js满天星星
  6. 安全漏洞之SQL注入和shell注入
  7. 闲鱼卖货,月入1.5w的小众类目分享。
  8. 教你用微信带称呼群发祝福
  9. 关于Git 的管理凭据操作
  10. 韩泰机器人_韩泰轮胎怎么样?进击的韩泰,拥有着对未来无限的可能!