題目描述
定義棧的資料結構,請在該型別中實現乙個能夠得到棧中所含最小元素的min函式(時間複雜度應為o(1))。
python:
c++: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
]
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 增加了乙個輔助棧,每次壓入資料棧時,把當前棧裡面最小的值壓入輔助棧...