40. 用栈实现队列:

正如标题所述,你需要使用两个栈来实现队列的一些操作。

队列应支持push(element),pop() 和 top(),其中pop是弹出队列中的第一个(最前面的)元素。

pop和top方法都应该返回第一个元素的值。

假设调用pop()函数的时候,队列非空

样例 1

 输入:push(1)pop()    push(2)push(3)top()    pop()
输出:122

样例 2

输入:push(1)push(2)push(2)push(3)push(4)push(5)push(6)push(7)push(1)
输出:[]

挑战

仅使用两个栈来实现它,不使用任何其他数据结构,push,pop 和 top的复杂度都应该是均摊O(1)的

原题传送门



题解

public class MyQueue {private final Stack<Integer> inStack  = new Stack<>();private final Stack<Integer> outStack = new Stack<>();public MyQueue() {// do intialization if necessary}/** @param element: An integer* @return: nothing*/public void push(int element) {// write your code hereinStack.push(element);}/** @return: An integer*/public int pop() {// write your code hereadjust();return outStack.pop();}/** @return: An integer*/public int top() {// write your code hereadjust();return outStack.peek();}private void adjust() {if (outStack.isEmpty()) {while (!inStack.isEmpty()) {outStack.push(inStack.pop());}}}
}

最后说两句

非常感谢你阅读本文章,如果你觉得本文对你有所帮助,请留下你的足迹,点个赞,留个言,多谢~

作者水平有限,如果文章内容有不准确的地方,请指正。

希望小伙伴们都能每天进步一点点。

本文由二当家的白帽子博客原创,转载请注明来源,谢谢~

【精】LintCode领扣问题答案:40. 用栈实现队列相关推荐

  1. 【精】LintCode领扣算法问题答案:1029. 寻找最便宜的航行旅途(最多经过k个中转站)

    1029. 寻找最便宜的航行旅途(最多经过k个中转站) 描述 有n个城市被一些航班所连接.每个航班 (u,v,w) 从城市u出发,到达城市v,价格为w. 给定城市数目 n,所有的航班flights.你 ...

  2. 【精】LintCode领扣算法问题答案:入门

    文章目录 23. 判断数字与字母字符 描述 题解 25. 打印X 描述 题解 37. 反转一个3位整数 描述 题解 145. 大小写转换 描述 题解 366. 斐波纳契数列 描述 题解 454. 矩阵 ...

  3. 【精】LintCode领扣算法问题答案:1084. “马”在棋盘上的概率

    1084. "马"在棋盘上的概率 描述 已知一个 NxN 的国际象棋棋盘,棋盘的行号和列号都是从 0 开始.即最左上角的格子记为 (0, 0),最右下角的记为 (N-1, N-1) ...

  4. 【精】LintCode领扣算法问题答案:306. 商品列表

    306. 商品列表: 有一个商品列表,该列表是由L1.L2两个子列表拼接而成.当用户浏览并翻页时,需要从列表L1.L2中获取商品进行展示.展示规则如下: 用户可以进行多次翻页,用offset表示用户已 ...

  5. 【精】LintCode领扣算法问题答案:1086. 重复字符串匹配

    1086. 重复字符串匹配: 给定两个字符串A和B,找到A必须重复的最小次数,以使得B是它的子字符串. 如果没有这样的解决方案,返回-1. A和B的长度在1到10000之间. 样例 1 输入 : A ...

  6. 【精】LintCode领扣算法问题答案:316. 组合集

    316. 组合集 描述 给一个数组,给出所有可能的排列组合出的数小于给定的数字 1 <= len(num) <= 10 0 <= num[i] <= 9 target < ...

  7. 【精】LintCode领扣算法问题答案:993. 数组划分 I

    993. 数组划分 I: 给一个有 2n 个整数的数组,你的任务是把这些整数分成 n 组,如(a1, b1),(a2, b2),-,(an, bn).并且使得 i 从 1 到 n 的 min(ai, ...

  8. 【精】LintCode领扣算法问题答案:1371. 链表组件

    1371. 链表组件 描述 给定一个链表(链表结点包含一个整型值)的头结点 head. 同时给定列表 G,该列表是上述链表中整型值的一个子集. 返回列表 G 中组件的个数,这里对组件的定义为:链表中一 ...

  9. 【精】领扣LintCode算法问题答案:336. 文本压缩

    336. 文本压缩 描述 给你一个只含有可见字符(ASCII 码范围 32 至 126)文本文件,文件中可能出现一些重复的单词,你需要对它们进行压缩. 压缩规则如下: 如果原文件中的字符不是英文字符, ...

最新文章

  1. SNMP OID是什么?
  2. WPF Converter 使用复杂参数的方法
  3. Eclipse SVN插件检出Src下面的包变成了文件夹解决
  4. U_boot 的 bootcmd 和bootargs参数详解
  5. android gif转jpg格式文件,android使用多张图片合成gif文件
  6. 数据结构思维 第十三章 二叉搜索树
  7. 让图片左右缓慢移动的MoveView
  8. 关于内存泄漏检测问题,和大家一起分享
  9. javaWeb基于SSM框架学生信息管理系统项目完整源码附带部署教程
  10. PPDE三星私有协议
  11. Android 项目必备(三十二)-->APP 项目产品介绍
  12. 利用旧电脑搭建NAS(黑群晖)
  13. 百度网盘高速直链提取
  14. Bootstrap(一)
  15. 禁用U盘等移动设备的自动播放
  16. 互联网医院软件|互联网医院系统开发|在线问诊提高医疗效率
  17. 计算机如何寻址硬盘,寻址
  18. 2023西湖论剑wirteup
  19. 运行CCleaner时出现问题
  20. 齐治堡垒机前台远程命令执行漏洞(CNVD-2019-20835)分析

热门文章

  1. 基于JAVA古惠农产品线上销售系统计算机毕业设计源码+数据库+lw文档+系统+部署
  2. 在线python3_Python3练习项目10:在线聊天室(下)
  3. 濑尿虾(富贵虾)的做法有很多种:
  4. 机器学习之各种熵的总结
  5. 使用纯H5开发手机app页面的一些经验
  6. php rrdtool,PHP配置rrdtool扩展 (How to build the PHP rrdtool extension)
  7. 小程序中获取屏幕高度及iPhoneX适配问题
  8. 改变bootstarp图标水平方向
  9. vue3 template
  10. Android 实现音频的裁剪,拼接和混音