設計乙個支援 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...