成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

每日算法:用兩個棧實現(xiàn)隊列

開發(fā) 前端 算法
用兩個棧實現(xiàn)一個隊列。隊列的聲明如下,請實現(xiàn)它的兩個函數(shù) appendTail 和 deleteHead ,分別完成在隊列尾部插入整數(shù)和在隊列頭部刪除整數(shù)的功能。

[[422522]]

本文轉(zhuǎn)載自微信公眾號「三分鐘學(xué)前端」,作者 sisterAn 。轉(zhuǎn)載本文請聯(lián)系三分鐘學(xué)前端公眾號。

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

示例 1:

  1. 輸入: 
  2. ["CQueue","appendTail","deleteHead","deleteHead"
  3. [[],[3],[],[]] 
  4. 輸出:[null,null,3,-1] 

示例 2:

  1. 輸入: 
  2. ["CQueue","deleteHead","appendTail","appendTail","deleteHead","deleteHead"
  3. [[],[],[5],[2],[],[]] 
  4. 輸出:[null,-1,null,null,5,2] 

提示:

  • 1 <= values <= 10000
  • 最多會對 appendTail 、deleteHead 進(jìn)行 10000 次調(diào)用

解題思路:

  • 棧后進(jìn)先出,隊列先進(jìn)先出
  • 雙棧可以實現(xiàn)序列倒置:假設(shè)有 stack1=[1, 2, 3] 、 stack2=[] ,如果循環(huán)出棧 stack1 并將出棧元素進(jìn)棧 stack2 ,則循環(huán)結(jié)束后, stack1=[] 、 stack2=[3, 2, 1] ,即通過 stack2 實現(xiàn)了 stack1 中元素的倒置
  • 當(dāng)需要刪除隊首元素時,僅僅需要 stack2 出棧即可;當(dāng) stack2 為空時,出隊就需要將 stack1 元素倒置倒 stack2 , stack2 再出隊即可;如果 stack1 也為空,即隊列中沒有元素,返回 -1

代碼實現(xiàn):

  1. const CQueue = function() { 
  2.     this.stack1 = [] 
  3.     this.stack2 = [] 
  4. }; 
  5. CQueue.prototype.appendTail = function(value) { 
  6.     this.stack1.push(value) 
  7. }; 
  8. CQueue.prototype.deleteHead = function() { 
  9.     if(this.stack2.length) { 
  10.         return this.stack2.pop() 
  11.     } 
  12.     if(!this.stack1.length) return -1 
  13.     while(this.stack1.length) { 
  14.         this.stack2.push(this.stack1.pop()) 
  15.     } 
  16.     return this.stack2.pop() 
  17. }; 

復(fù)雜度分析:

時間復(fù)雜度:appendTail 的時間復(fù)雜度為O(1),deleteHead 的時間復(fù)雜度為 O(n)

 

空間復(fù)雜度:O(n)

 

責(zé)任編輯:武曉燕 來源: 三分鐘學(xué)前端
相關(guān)推薦

2020-10-26 08:19:53

算法隊列

2022-08-11 08:03:43

隊列

2021-03-01 23:31:48

隊列實現(xiàn)棧存儲

2021-11-15 09:53:16

STM32PSPMSP

2021-08-03 08:13:47

數(shù)據(jù)

2019-06-25 10:46:04

Flutter開發(fā)APP

2024-02-02 08:25:34

隊列與棧Python數(shù)據(jù)結(jié)構(gòu)

2016-03-31 11:28:21

imageView圖片輪播

2010-07-17 00:50:12

batch Telne

2021-03-27 11:02:04

JavaScript隊列編程語言

2019-08-08 09:09:20

MySQL硬件Linux

2022-06-17 09:46:51

Chrome 102Chrome瀏覽器

2021-10-26 00:23:26

算法高頻元素

2010-05-27 09:50:18

MySQL導(dǎo)入sql腳

2009-06-30 09:37:02

對象比較Java

2010-09-13 16:55:27

DIV橫向排列

2010-07-21 11:32:35

SQL Server日

2011-09-07 16:43:38

Qt Widget

2025-02-25 09:11:08

2020-11-13 07:16:09

線程互斥鎖死循環(huán)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美一级在线观看 | 久久久观看 | 在线观看成人av | 欧美一区二区三区视频在线 | 欧美国产精品 | 性xxxxx| 亚洲欧美国产一区二区三区 | 成人精品久久 | 成人免费观看男女羞羞视频 | 午夜在线| 黄视频国产| 欧美黑人一区 | 日本免费一区二区三区四区 | 中文无吗 | 九九热精品视频 | 日本a视频 | 亚洲免费在线视频 | 一区二区在线不卡 | 免费观看视频www | 在线观看视频一区二区三区 | 狠狠躁夜夜躁人人爽天天高潮 | 超碰在线播 | 久久成人一区二区三区 | 亚洲国产精品99久久久久久久久 | 免费观看一区二区三区毛片 | 狠狠久久综合 | 久久一区二 | 中文字幕一区二区三区在线观看 | 精品一二三区在线观看 | 精品国产一区二区在线 | 色狠狠一区 | 成人精品在线观看 | 国产精品片 | 99福利视频 | 国产精品一区二区视频 | 无码日韩精品一区二区免费 | 国产成人精品久久二区二区 | 亚洲欧美国产精品久久 | 亚洲成人精品国产 | 18av在线播放| 欧美综合一区二区 |