国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

算法:用兩個棧實現隊列

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”,全部都是干貨。


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

分享到微博請遵守國家法律
仲巴县| 夏河县| 兴和县| 临湘市| 南岸区| 仪陇县| 吴堡县| 杭州市| 龙海市| 九龙坡区| 东乡县| 鄱阳县| 南丹县| 祁连县| 营山县| 博客| 怀集县| 绥中县| 彭山县| 瓦房店市| 屏南县| 武功县| 牡丹江市| 长春市| 垫江县| 县级市| 山西省| 夏邑县| 青海省| 楚雄市| 股票| 射阳县| 上林县| 类乌齐县| 三穗县| 汽车| 嫩江县| 枝江市| 璧山县| 天长市| 永泰县|