20 包含min函式的棧

2021-10-01 17:45:58 字數 801 閱讀 7685

題目描述

定義棧的資料結構,請在該型別中實現乙個能夠得到棧中所含最小元素的min函式(時間複雜度應為o(1))。

python:

class

solution

:def

__init__

(self)

: self.stack =

# 用於存放對應棧元素所在位置及之前元素最小值

self.assist =

defpush

(self, node):if

len(self.assist)==0

or node < self.assist[-1

]:else

:min()

)def

pop(self)

: self.assist.pop(

)return self.stack.pop(

)def

top(self)

:return self.stack[-1

]def

min(self)

:return self.assist[-1

]

c++:

class

solution

else

stack1.

push

(value);}

void

pop(

)int

top(

)int

min()}

;

20 包含min函式的棧

思路1 選用存放資料的棧s和存放當前最小值的輔助棧mins,當s記憶體入比當前最小值還小的樹,則該數字入輔助棧,若存放值比當前最小值大,則再次存入當前最小值到輔助棧 這樣mins存在冗餘資訊,可進一步改進。1 class solution else void pop int top int min ...

20 包含min函式的棧

題目 定義乙個棧的資料結構,請在該型別中實現乙個能夠得到棧中最小元素的min函式 思路 可以使用兩個棧,乙個儲存資料,乙個儲存棧中的最小元素。例如 定義兩個棧stack1和stack2,將4壓入stack1,stack2為空,同時將4壓入stack2 然後將2壓入stack1,這時stack1的最小...

20 包含min函式的棧

定義棧的資料結構,請在該型別中實現乙個能夠得到棧中所含最小元素的min函式 時間複雜度應為o 1 var stack function push node function pop function top function min 增加了乙個輔助棧,每次壓入資料棧時,把當前棧裡面最小的值壓入輔助棧...