当前位置: 首页 > news >正文

【创作赢红包】LeetCode:232. 用栈实现队列

🍎道阻且长,行则将至。🍓

🌻算法,不如说它是一种思考方式🍀


算法专栏: 👉🏻123


一、🌱232. 用栈实现队列

  • 题目描述:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):
    实现 MyQueue 类:
    void push(int x) 将元素 x 推到队列的末尾
    int pop() 从队列的开头移除并返回元素
    int peek() 返回队列开头的元素
    boolean empty() 如果队列为空,返回 true ;否则,返回 false
    说明:
    你 只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。
    你所使用的语言也许不支持栈。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。

  • 来源:力扣(LeetCode)

  • 难度:简单

  • 提示:
    1 <= x <= 9
    最多调用 100 次 push、pop、peek 和 empty
    假设所有操作都是有效的 (例如,一个空的队列不会调用 pop 或者 peek 操作)

栈和队列

栈(STACK)是一种先进后出(LIFO)的数据结构。栈的操作有进栈(push)、出栈(pop)、栈是否空、查看栈顶元素。
队(QUEUE)列是一种先进先出(FIFO)的数据结构。操作有入队、出队、对空、队首。
在这里插入图片描述
例如不考虑异常时:

class MyQueue {List<Integer> myqueue=new ArrayList<>();public MyQueue() {}public void push(int x) {myqueue.add(x);}public int pop() {int x=myqueue.get(0);myqueue.remove(0);return x;}public int peek() {return myqueue.get(0);}public boolean empty() {return myqueue.isEmpty();}
}

🌴解题

1.栈实现队列操作

使用两个栈一个作为进一个作为出:

class MyQueue {Deque<Integer> inStack;Deque<Integer> outStack;public MyQueue() {inStack = new ArrayDeque<Integer>();outStack = new ArrayDeque<Integer>();}public void push(int x) {inStack.push(x);}public int pop() {if (outStack.isEmpty()) {in2out();}return outStack.pop();}public int peek() {if (outStack.isEmpty()) {in2out();}return outStack.peek();}public boolean empty() {return inStack.isEmpty() && outStack.isEmpty();}private void in2out() {while (!inStack.isEmpty()) {outStack.push(inStack.pop());}}
}

在这里插入图片描述


🌵赵客缦胡缨,吴钩霜雪明。银鞍照白马,飒沓如流星。——李白🌷

返回第一页。☝


☕物有本末,事有终始,知所先后。🍭

🍎☝☝☝☝☝我的CSDN☝☝☝☝☝☝🍓

http://www.lryc.cn/news/44414.html

相关文章:

  • Mybatis+Mysql 实现向下递归查询
  • python@调用系统命令行@os.system@subprocess@标准输入输出@sys.stdin@sys.stdout@input@print
  • 手握数据智能密钥,诸葛智能打开数字化经营“三重门”
  • C语言可以实现各种滤波算法
  • 使用Netty,当然也要了解它的连接闲置处理
  • 2、K-Planes
  • 张文海教授课题组在国际高水平期刊《Cerebral Cortex》发表研究成果
  • ffmpeg4.1 源码学习之-转封装
  • ChatGPT写作文章-快速使用ChatGPT不用注册方式
  • Nginx配置ip白名单(服务权限控制)
  • Vue 核心(二)
  • 犯罪现场还原虚拟vr训练平台突破各种教学限制
  • LeetCode 617. 合并二叉树 | C++语言版
  • Python量化交易08——利用Tushare获取日K数据
  • 30张精美可视化大屏,无需代码直接套用,解决你95%的大屏需求!
  • TCP网络事件模型的封装1.0
  • NC271.二叉搜索树的后序遍历序列
  • 研究fastdds v2.8.0 1之 基础模块
  • ElasticSearch系列 - SpringBoot整合ES:精确值查询 term
  • 关于async/await、promise和setTimeout执行顺序
  • 2023-03-31:如何计算字符串中不同的非空回文子序列个数?
  • D. The Number of Imposters(二分图染色)
  • 图片太大怎么改小kb?简单的图片压缩方法分享
  • 【python-leecode刷题】动态规划类问题----以53. 最大子数组和为例
  • Idea常用快捷键设置
  • 【新2023Q2模拟题JAVA】华为OD机试 - 分苹果
  • 【博学谷学习记录】超强总结,用心分享丨人工智能 自然语言处理 BERT、GPT、ELMO对比学习简记
  • 【嵌入式Bluetooth应用开发笔记】第四篇:初探蓝牙HOST及应用开发(持续更新ing)
  • GORM 基础 -- CRUD 接口
  • 为什么0代码自动化测试越来越受欢迎?一文2000字解析