題目描述
定義棧的資料結構,請在該型別中實現乙個能夠得到棧中所含最小元素的min函式(時間複雜度應為o(1))。
注意:保證測試中不會當棧為空的時候,對棧呼叫pop()或者min()或者top()方法。
# -*- coding:utf-8 -*-
class
solution
:def
__init__
(self)
: self.s_stack =
self.min_stack =
defpush
(self, node)
:if self.min_stack:
if self.min_stack[-1
]> node:
else:-
1])else
:# write code here
defpop
(self)
:# write code here
if self.s_stack:
self.s_stack.pop(
) self.min_stack.pop(
)def
top(self)
:# write code here
if self.s_stack:
return self.s_stack[-1
]if self.min_stack:
return self.min_stack[-1
]def
min(self)
:# write code here
if self.min_stack:
return self.min_stack[-1
]return
none
包含min函式的最小棧
題目 定義棧的資料結構,請在該型別中實現乙個能夠得到棧的最小元素的min函式。在該棧中,呼叫min,push,及pop的時間複雜度都是o 1 劍指offer上面的題目。廢話不多說,直接上 include stdafx.h include include include using namespace...
實現乙個能找到棧的最小元素的min函式
定義兩個棧,乙個是資料棧,乙個是輔助棧。舉例說明 首先往空的資料棧中壓入3,顯然現在3是最小值,把這個值也壓入輔助棧,接下來往資料棧中壓入4,由於之前的3還是最小值,則4同樣壓入壓入輔助棧 為了和資料棧元素個數相同 接著往資料棧中壓入2,2小於之前的最小值3,則2也壓入輔助棧,則輔助棧的棧頂就是最小...
17 實現包含min函式的最小棧
定義棧的資料結構,請在該型別中實現乙個能夠得到棧最小元素的min函式。利用兩個棧實現,stack1和stack2.stack1實現棧的基本功能pop top 等,stack2實現min 功能,每當乙個元素value壓入stack1中時候,比較value 和 stack2.top 元素,把min va...