【双100%提交】剑指 Offer 09. 用两个栈实现队列
生活随笔
收集整理的這篇文章主要介紹了
【双100%提交】剑指 Offer 09. 用两个栈实现队列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
立志用最少的代碼做最高效的表達
用兩個棧實現一個隊列。隊列的聲明如下,請實現它的兩個函數 appendTail 和 deleteHead ,分別完成在隊列尾部插入整數和在隊列頭部刪除整數的功能。(若隊列中沒有元素,deleteHead 操作返回 -1 )
示例 1:
輸入:
[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”]
[[],[3],[],[]]
輸出:[null,null,3,-1]
示例 2:
輸入:
[“CQueue”,“deleteHead”,“appendTail”,“appendTail”,“deleteHead”,“deleteHead”]
[[],[],[5],[2],[],[]]
輸出:[null,-1,null,null,5,2]
提示:
1 <= values <= 10000
最多會對 appendTail、deleteHead 進行 10000 次調用
class CQueue {Stack<Integer>s_in;Stack<Integer>s_out;public CQueue() {s_in = new Stack<>();s_out = new Stack<>();}public void appendTail(int value) {s_in.push(value);}public int deleteHead() {if(!s_out.isEmpty()) {return s_out.pop();} else {while(!s_in.isEmpty()) {s_out.push(s_in.pop());}return (s_out.isEmpty() ? -1 : s_out.pop());}} }
總結
以上是生活随笔為你收集整理的【双100%提交】剑指 Offer 09. 用两个栈实现队列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剑指 Offer 07. 重建二叉树【千
- 下一篇: 【双百解法】剑指 Offer 10- I