[動畫leetcode高頻面試之數組系列之棧隊列]1 棧實現隊列

這是我的面試經歷以及整理的相關面試高頻題目,希望對大家有幫助。面試集錦

老規矩,不白嫖,點贊再看!

因爲小藍當時很想去做短視頻的互聯網公司,無奈學校當地鮮有相關公司來校招,所以就跋涉去了湖大,當天晚上參加了現場筆試,半夜收到第二天覆試通知,二面中面試官就讓手撕用棧實現隊列

在這裏插入圖片描述
在此大家可以先思考1分鐘
順便複習下
棧和隊列
再看題解效果會更好哈


  • 棧是一種先進後出的數據結構。棧中的元素從棧頂(top)壓入(push),從棧頂彈出(top)。注意:壓入我們需要判棧是否已滿,彈出需要判棧是否已空。下面我們看看圖加深下印象。
    在這裏插入圖片描述
    在這裏插入圖片描述
    入棧 1 2 3
    出棧 3 2 1

  • 隊列
    隊列是一種先進先出的數據結構。隊列中的元素從隊尾(rear)入隊(push),從隊頭(front)出隊(pop).同樣,我們用圖的方式來加深印象。
    在這裏插入圖片描述
    在這裏插入圖片描述
    入隊列 1 2 3
    出隊列 1 2 3

一 題目

使用棧實現隊列的下列操作:
push(x) – 將一個元素放入隊列的尾部。
pop() – 從隊列首部移除元素。
peek() – 返回隊列首部的元素。
empty() – 返回隊列是否爲空。

示例

示例:
MyQueue queue = new MyQueue();
queue.push(1);
queue.push(2);
queue.peek(); // 返回 1
queue.pop(); // 返回 1
queue.empty(); // 返回 false

1 leetcode連接

原題連接

2 題目解析

  • 相信大家已經知道了棧是先進後出,隊列是先進先出。假設1 2 3進棧,第一次出棧爲3 2 1(反了一次),但是我們想要的出來的順序爲1 2 3,那麼我們在此基礎再反一次。
    在這裏插入圖片描述
  • ok,其實我們需要引入另一棧來輔助我們完成,如下圖。
    在這裏插入圖片描述

3 動畫演示

不好意思哈,因爲支持視頻只支持b站,騰訊視頻,可是我還沒上傳,我就放我公衆號的外鏈吧。
動畫演示

3 代碼實現

  • c++版本
    在這裏插入圖片描述
  • python版本
    在這裏插入圖片描述
  • java版本
    在這裏插入圖片描述

4 收尾

系列算法題均採用三種不同的語言實現,滿足不同小夥伴的需求。如有不對的地方希望小夥伴指出,感謝!

❤️ 看完三件事:如果您看完有一點點收穫,快速迎娶白富美方式:
1 關注公衆號「我是程序員小賤」,第一時間閱讀最新的文章,公衆號後臺回覆 [小天使] 送你 最新的編程技術資料。
2 點贊,讓更多的人也能看到這篇內容(收藏不點贊,都是耍流氓 -_-)
3 關注我和專欄,讓我們成爲好基友。

發佈了34 篇原創文章 · 獲贊 65 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章