LeeCode 面試題09 用兩個棧實現佇列

2021-10-03 04:26:53 字數 552 閱讀 7912

題目位址

class

cqueue

public

void

(int value)

//如果兩個棧都是空的,返回-1

//如果有元素的話,如果2號棧不空,則彈出2號棧的元素即可

// 如果2號棧空,最早入棧的元素在1號棧的底部,將1號棧的元素都倒到二號棧,彈出2號棧最上面的元素。

public

intdeletehead()

if(!stack2.

isempty()

)while

(!stack1.

isempty()

)return stack2.

pop();

}}/** * your cqueue object will be instantiated and called as such:

* cqueue obj = new cqueue();

* int param_2 = obj.deletehead();

*/

面試題09 用兩個棧實現佇列

題目 演算法思路 棧的特性是先進後出,佇列是先進先出,題目要求通過兩個棧來實現佇列,說明必有乙個是輔助棧 可以看做佇列 另外乙個棧用於儲存資料。根據棧的特性,第乙個棧底部元素是最先入棧的元素,同時也是第二個棧最先刪除的元素。每次向第乙個棧插入元素時,如果第二個棧不為空,需要先將第二個棧的元素依次出棧...

兩個面試題

1.實現乙個lite版的字串替換函式 c c char strreplace char str,const char sub,const char rep 限制條件和要求如下 1.其中str為原字串,sub為待被替換的子串。為簡單起見,假定字串sub和rep長度一樣 2.直接對原字串str進行修改並...

劍指Offer 面試題09 用兩個棧實現佇列

示例 1 輸入 3 輸出 null,null,3,1 示例 2 輸入 5 2 輸出 null,1,null,null,5,2 解題思路 棧無法實現佇列功能 棧底元素 對應隊首元素 無法直接刪除,需要將上方所有元素出棧。雙棧可實現列表倒序 設有含三個元素的棧 a 1,2,3 和空棧 b 若迴圈執行 a...