1. 程式人生 > >關於牛客網劍指offer程式設計題思路(棧和佇列篇)

關於牛客網劍指offer程式設計題思路(棧和佇列篇)

相關題目來源

解題思路

1. 用兩個棧實現佇列

這道題阿里電話面試的時候問過,本來很簡單的,當時太不自信了qaq

首先一個stack是作為接受佇列的push輸入,另一個stack作為輸出pop,用效率比較高的方法是要pop的時候檢查一下stack2是否為空,不為空則直接pop,為空則要把stack1所有元素倒給stack2。

2. 包含min函式的棧

用兩個棧,一個來儲存資料,一個來儲存資料棧對應的當前min值,兩個棧資料的數量要一樣多。

3. 棧的壓入、彈出序列

這個是判斷彈出序列是否為可能的序列之一。

需要一個輔助棧,遍歷壓入棧序列和彈出序列,棧每次壓入後都要判斷棧頂的元素是否是彈出序列遍歷的首元素,是的話彈出,不是則繼續壓入直到找到和彈出序列首元素相同的棧頂元素。

遍歷結束後判斷棧是否為空,是的話彈出序列正確