真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何進(jìn)行包含函數(shù)的棧分析

本篇文章為大家展示了如何進(jìn)行包含函數(shù)的棧分析,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

我們提供的服務(wù)有:做網(wǎng)站、成都網(wǎng)站制作、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、古浪ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的古浪網(wǎng)站制作公司

定義棧的數(shù)據(jù)結(jié)構(gòu),請(qǐng)?jiān)谠擃愋椭袑?shí)現(xiàn)一個(gè)能夠得到棧的最小元素的 min 函數(shù)在該棧中,調(diào)用 min、push 及 pop 的時(shí)間復(fù)雜度都是 O(1)。

示例:

MinStack minStack = new MinStack();

minStack.push(-2);

minStack.push(0);

minStack.push(-3);

minStack.min();   --> 返回 -3.

minStack.pop();

minStack.top();      --> 返回 0.

minStack.min();   --> 返回 -2.

提示:

各函數(shù)的調(diào)用總次數(shù)不超過 20000 次

解題思路:

1,注意本題是棧,需要和隊(duì)列那個(gè)區(qū)分開

2,維護(hù)一個(gè)最小值棧

3,push 如果當(dāng)前元素比最小值棧頂元素小,則放棄,否則插入

4,pop 如果棧頂元素和最小值棧頂元素相等,則同時(shí)出棧

5,注意細(xì)節(jié),元素和最小值棧頂元素相等也要入棧

復(fù)習(xí)下 隊(duì)列那個(gè)題目

1,需要維護(hù)一個(gè)最小值雙端隊(duì)列

2,每次入隊(duì)的時(shí)候從后往前找,找到比插入元素?。ù螅┑脑?,舍棄隊(duì)列后面元素,將當(dāng)前元素插入

代碼實(shí)現(xiàn)

type MinStack struct {  data []int  minData []int}

/** initialize your data structure here. */func Constructor() MinStack {   return MinStack{}}

func (this *MinStack) Push(x int)  {   this.data=append(this.data,x)    if len(this.data)==1{        this.minData=append(this.minData,x)        return    }        l:=len(this.minData)    if x<=this.minData[l-1]{        this.minData=append(this.minData,x)    }    }

func (this *MinStack) Pop()  {    if len(this.data)==0{        return    }    l:=len(this.data)    v:=this.data[l-1]    this.data=this.data[:l-1:l-1]    l1:=len(this.minData)    if v==this.minData[l1-1]{        this.minData=this.minData[:l1-1:l1-1]    }    return}

func (this *MinStack) Top() int {     if len(this.data)==0{         return -1     }     return this.data[len(this.data)-1]}

func (this *MinStack) Min() int {        if len(this.data)==0{         return -1     }     return this.minData[len(this.minData)-1]}

/** * Your MinStack object will be instantiated and called as such: * obj := Constructor(); * obj.Push(x); * obj.Pop(); * param_3 := obj.Top(); * param_4 := obj.Min(); */

上述內(nèi)容就是如何進(jìn)行包含函數(shù)的棧分析,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


標(biāo)題名稱:如何進(jìn)行包含函數(shù)的棧分析
鏈接地址:http://weahome.cn/article/gehhed.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部