最小棧學習

2021-09-25 20:45:57 字數 758 閱讀 2170

設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。

push(x) – 將元素 x 推入棧中。

pop() – 刪除棧頂的元素。

top() – 獲取棧頂元素。

getmin() – 檢索棧中的最小元素

class minstack(object):

def __init__(self):

self.stack = #初始化棧

self.min = none

def push(self,x):

if self.min==none or self.min>x:

self.min = x #更新最小值

def pop(self):

pop_item = self.stack.pop()

if len(self.stack)==0;

self.min=none

return pop_item

#更新最小值

if pop_item ==self.min:

self.min = self.stack[0]

for i in self.stack:

if iself.min = i

return pop_item

def top(self):

return self,stack[-1]

def getmin(self):

return self.min

最小棧 最小棧的實現與優化

實現乙個最小棧,一步一步優化,從額外空間o n 到o 1 push,pop,top,getmin都是o 1 時間。空間消耗o n 如何優化到o 1 class minstack1 void pop int top int getmin 如何只用乙個棧實現最小棧的實現?入棧順序 2,1,3,4,2,0...

leetcode 棧 155 最小棧

設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。示例 minstack minstack new minstack minstack.push 2 m...

棧和佇列 最小棧

題目要求 設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。示例 minstack minstack new minstack minstack.pus...