最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

算法:用兩個棧實現隊列

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


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

分享到微博請遵守國家法律
榕江县| 桑植县| 铁力市| 武宁县| 昌宁县| 淮阳县| 兴安县| 定南县| 安多县| 东源县| 东乡县| 泗洪县| 沙湾县| 衡阳县| 鸡泽县| 蛟河市| 海晏县| 绥芬河市| 罗甸县| 遂溪县| 澄城县| 礼泉县| 灵寿县| 枝江市| 闸北区| 汝南县| 鄯善县| 阜新市| 岳普湖县| 丰原市| 澄迈县| 叙永县| 阳新县| 蒙阴县| 长沙市| 辰溪县| 彭泽县| 甘德县| 舒兰市| 全州县| 罗山县|