五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

算法:用兩個棧實現隊列

2022-05-26 11:11 作者:做架構師不做框架師  | 我要投稿


用兩個棧實現一個隊列。隊列的聲明如下,請實現它的兩個函數 appendTail 和 deleteHead ,分別完成在隊列尾部插入整數和在隊列頭部刪除整數的功能。(若隊列中沒有元素,deleteHead 操作返回 -1 )

示例

輸入:

  • ["CQueue","appendTail","deleteHead","deleteHead"]

  • [[],[3],[],[]]

輸出:[null,null,3,-1]

提示:

  • 1 <= values <= 10000

  • 最多會對 appendTail、deleteHead 進行 10000 次調用

思路

將一個棧當作輸入棧,用于壓入 appendTail 傳入的數據;另一個棧當作輸出棧,用于 deleteHead 操作。

每次 deleteHead 時,若輸出棧為空則將輸入棧的全部數據依次彈出并壓入輸出棧,這樣輸出棧從棧頂往棧底的順序就是隊列從隊首往隊尾的順序。

復雜度分析

  • 時間復雜度:appendTail 為 O(1),deleteHead 為均攤 O(1)。對于每個元素,至多入棧和出棧各兩次,故均攤復雜度為 O(1)。

  • 空間復雜度:O(n)。其中 n 是操作總數。對于有 n 次 appendTail 操作的情況,隊列中會有 n 個元素,故空間復雜度為 O(n)。

寫在最后

本文內容出處是力扣官網,希望和大家一起刷算法,在后面的路上不變禿但是變強!

好兄弟可以點贊并關注我的公眾號“javaAnswer”,全部都是干貨。


算法:用兩個棧實現隊列的評論 (共 條)

分享到微博請遵守國家法律
介休市| 浦城县| 玉门市| 清河县| 张家川| 沂水县| 中卫市| 响水县| 郎溪县| 阳新县| 南江县| 达州市| 江华| 闵行区| 揭东县| 康定县| 农安县| 辽源市| 萨嘎县| 弥渡县| 普陀区| 纳雍县| 华阴市| 东海县| 达拉特旗| 聂拉木县| 青浦区| 雅江县| 论坛| 平远县| 叶城县| 宜兰县| 昌邑市| 两当县| 乌鲁木齐县| 方正县| 惠来县| 灵寿县| 德庆县| 阜城县| 荥经县|