偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

每日算法:用兩個(gè)棧實(shí)現(xiàn)隊(duì)列

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

[[422522]]

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

用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列。隊(duì)列的聲明如下,請(qǐng)實(shí)現(xiàn)它的兩個(gè)函數(shù) appendTail 和 deleteHead ,分別完成在隊(duì)列尾部插入整數(shù)和在隊(duì)列頭部刪除整數(shù)的功能。(若隊(duì)列中沒(méi)有元素,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
  • 最多會(huì)對(duì) appendTail 、deleteHead 進(jìn)行 10000 次調(diào)用

解題思路:

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

代碼實(shí)現(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ù)雜度分析:

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

 

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

 

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

2020-10-26 08:19:53

算法隊(duì)列

2022-08-11 08:03:43

隊(duì)列

2021-03-01 23:31:48

隊(duì)列實(shí)現(xiàn)棧存儲(chǔ)

2021-11-15 09:53:16

STM32PSPMSP

2021-08-03 08:13:47

數(shù)據(jù)

2019-06-25 10:46:04

Flutter開(kāi)發(fā)APP

2024-02-02 08:25:34

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

2010-07-17 00:50:12

batch Telne

2016-03-31 11:28:21

imageView圖片輪播

2021-03-27 11:02:04

JavaScript隊(duì)列編程語(yǔ)言

2019-08-08 09:09:20

MySQL硬件Linux

2022-06-17 09:46:51

Chrome 102Chrome瀏覽器

2010-05-27 09:50:18

MySQL導(dǎo)入sql腳

2010-07-21 11:32:35

SQL Server日

2010-09-13 16:55:27

DIV橫向排列

2009-06-30 09:37:02

對(duì)象比較Java

2011-09-07 16:43:38

Qt Widget

2025-02-25 09:11:08

2021-10-26 00:23:26

算法高頻元素

2020-11-13 07:16:09

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

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