示例 1:
輸入:[,[3],,]
輸出:[null,null,3,-1]
th:用兩個棧,乙個棧push資料 另乙個棧pop資料
輸入資料 1 2 3 push進instack 為 3 2 1 在pop到outstack棧中 為1 2 3 和輸入資料順序一樣、
時間複雜度:o(1) 一次push操作
空間複雜度:o(1) 乙個儲存空間
時間複雜度:o(n) 資料從instack到outstack棧 loop一次。
空間複雜度:o(n)
/*
* 用兩個棧,乙個棧push資料 另乙個棧pop資料
輸入資料 1 2 3 push進instack 為 3 2 1 在pop到outstack棧中 為1 2 3 和輸入資料順序一樣、
*/stack
in;stack
out;
public
cqueue()
public
void
(int value)
public
intdeletehead()
}if(out.
empty()
)return out.
pop();
}
劍指offer 8 兩個棧實現佇列
用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。解題思路 兩個棧,乙個棧用於儲存資料 入棧 instack,另乙個棧用於彈出資料 出棧 outstack,入佇列則將資料儲存到instack棧中,出佇列的話,先判斷outstack棧中是否有資料,有的話直接出棧即可,若...
劍指offer 用兩個棧實現佇列
華電北風吹 天津大學認知計算與應用重點實驗室 日期 2015 9 30 題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。解析 我的思路是用乙個棧來儲存資料,入隊的話直接在這個棧上入棧,出隊的話借助輔助棧,對輔助棧入棧,然後取出頭元素,然後把輔助棧上的元素在...
用兩個棧實現佇列《劍指offer
題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。解題思路 將元素入隊時壓入乙個棧中,隨後通過另乙個棧出隊 1 使用stack容器定義兩個棧 stack stack1 stack stack2 2 入隊 stack1.push node node為入隊元素 ...