[剑指offer][JAVA]面试题第[09]题[用两个栈实现队列][LinkedList]
生活随笔
收集整理的這篇文章主要介紹了
[剑指offer][JAVA]面试题第[09]题[用两个栈实现队列][LinkedList]
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【問題描述】[簡單]
用兩個棧實現一個隊列。隊列的聲明如下,請實現它的兩個函數 appendTail 和 deleteHead ,分別完成在隊列尾部插入整數和在隊列頭部刪除整數的功能。(若隊列中沒有元素,deleteHead 操作返回 -1 )示例 1:輸入: ["CQueue","appendTail","deleteHead","deleteHead"] [[],[3],[],[]] 輸出:[null,null,3,-1]【解答思路】
一個棧添加元素 一個棧逆轉數組
時間復雜度:O(N^2) 空間復雜度:O(1)
【總結】
1.棧使用LinkedList,不使用Stack(Stack繼承Vector,本質數組,效率低)
參考文章https://mp.weixin.qq.com/s/Ba8jrULf8NJbENK6WGrVWg
2.LinkedList 基本使用
添加
刪除
獲取
隊列 offer/add poll/remove peek
棧 offer/push poll/pop peek
總結
3.兩個棧可以有很多擴展
題目動畫詳解參考鏈接:https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/solution/mian-shi-ti-09-yong-liang-ge-zhan-shi-xian-dui-l-2/
LinkedList參考鏈接:https://www.cnblogs.com/yijinqincai/p/10964188.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的[剑指offer][JAVA]面试题第[09]题[用两个栈实现队列][LinkedList]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win系统利用本地安全策略全面禁止360
- 下一篇: 仿真软件都在这里了!20+国内外自动驾驶