leetcode剑指offe刷题-第一题

文章目录

  • leetcode剑指offe刷题-第一题
  • 前言
  • 一、用两个栈实现队列
    • 1.思路
    • 2.代码如下
  • 总结

前言

记录一下自己刷算法的路程。
leetcode剑指offer地址

https://leetcode.cn/study-plan/lcof/?progress=k5xariv


一、用两个栈实现队列

难度:简单
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )

leetcode链接:https://leetcode.cn/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof

1.思路

定义两个栈,一个存数据栈,一个出数据栈,
初始化类直接new 两个栈
appendTail 时 将数据压入存数据栈;
deleteHead时即删除队列头节点,此时做判断,

  1. 如果出数据栈为空,就接着判断存数据栈是否为空,如果存数据栈为空就表示,队列中没数据。直接返回-1。 如果存数据站不为空,则依次将存数据栈的数据依次压入出数据栈,利用两次栈的push,达到队列先进先出的效果.
  2. 如果出数据栈不为空,直接删除出数据栈的栈顶元素。

2.代码如下

代码如下(示例):

class CQueue {public Stack<Integer> inStack;public Stack<Integer>  outStack;public CQueue() {inStack = new Stack<>();outStack = new Stack<>();}public void appendTail(int value) {inStack.push(value);}public int deleteHead() {if(outStack.isEmpty()){if(inStack.isEmpty()){return -1;}while (!inStack.isEmpty()){outStack.push(inStack.pop());}}return outStack.pop();}
}

总结

以上,加油。

leetcode剑指offe刷题-第一题-用两个栈实现队列相关推荐

  1. 剑指offer——面试题7:用两个栈实现队列

    剑指offer--面试题7:用两个栈实现队列 Solution1: 注意栈的基本操作与vector略有不同~ class Solution { public:void push(int node) { ...

  2. 剑指offer:面试题09. 用两个栈实现队列

    题目:用两个栈实现队列 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能.(若队列中没有 ...

  3. [剑指offer]面试题7:用两个栈实现队列

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

  4. 【剑指offer】(七)—— 用两个栈实现队列

    题目:用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead,分别完成在队尾插入节点和在队列头部删除节点的操作. template<typena ...

  5. 【LeetCode 剑指offer刷题】数组题2:57 有序数组中和为s的两个数(167 Two Sum II - Input array is sorted)...

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 57 有序数组中和为s的两个数 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是 ...

  6. 【LeetCode 剑指offer刷题】查找与排序题14:Wiggle Sort(系列)

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Wiggle Sort II Given an unsorted array nums, reorder it su ...

  7. 【LeetCode 剑指offer刷题】矩阵题1:4 有序矩阵中的查找( 74. Search a 2D Matrix )(系列)...

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 74. Search a 2D Matrix Write an efficient algorithm that s ...

  8. 【LeetCode 剑指offer刷题】树题6:28 对称二叉树(101. Symmetric Tree)

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 101. Symmetric Tree /**  * Definition for a binary tree no ...

  9. 【LeetCode 剑指offer刷题】字符串题6:67 把字符串转成整数

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 67 把字符串转成整数 题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符 ...

最新文章

  1. 转:RemObjects SDK 简介
  2. winform 系统托盘程序
  3. elasticsearch python API
  4. c语言编译 64位,cmake – 编译32位和64位
  5. Jquery操作Table
  6. linux内存一直占满问题
  7. 拓端tecdat|R语言ISLR工资数据进行多项式回归和样条回归分析
  8. 2021年焊工作业压力焊考试题库
  9. python爬虫大众点评_Python爬虫(三)爬取大众点评网
  10. Qt编写小清新风格界面
  11. 面试官灵魂三问:什么是SOA?什么是微服务?SOA和微服务有什么区别?
  12. python编写库存管理_python编写商品管理
  13. 微信聊天记录如何恢复
  14. OKR是上下同欲的载体
  15. DDD学习(一)——通用语言
  16. 【bzoj1502】 NOI2005—月下柠檬树
  17. uni-app实现图片的上传和裁剪
  18. 代码设置窗体的弹出模式
  19. 安卓开发 输入单词表,点击读出单词 TextToSpeech
  20. matlab仿真图同时画两张,matlab怎么把两个图放在一起

热门文章

  1. Day12-2021.1.20-华为硬件笔试
  2. 基于WPF的科学计算器程序
  3. 【unity】动画状态机中Transition的settings两段动画如何设置?
  4. Alibaba Arthas快速入门 简单易懂
  5. 数据结构之不相交集类
  6. css 去除png图片黑色背景色,css的filter给png图片换色
  7. C# 小程序 getPhoneNumber(e),后台解析手机号码
  8. Win10 1809版本多用户远程登陆
  9. 被人盗用身份证复印件办了信用卡的后续处理
  10. 525、Java工程师的进阶之路 -【 RocketMQ (二)】 2022.01.06