這是我的面試經歷以及整理的相關面試高頻題目,希望對大家有幫助。面試集錦
老規矩,不白嫖,點贊再看!
因爲小藍當時很想去做短視頻的互聯網公司,無奈學校當地鮮有相關公司來校招,所以就跋涉去了湖大,當天晚上參加了現場筆試,半夜收到第二天覆試通知,二面中面試官就讓手撕用棧實現隊列
在此大家可以先思考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 關注我和專欄,讓我們成爲好基友。