最小元素的min函式

2021-10-07 07:06:24 字數 915 閱讀 5548

題目描述

定義棧的資料結構,請在該型別中實現乙個能夠得到棧中所含最小元素的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...