[本文出自天外歸雲的]
思路:入棧時靠輔助棧記住主棧元素中最小的,出棧時一直pop主棧元素直到輔助棧棧頂元素出現。
**如下(定義棧、超級棧):
class執行結果:stack(object):
def__init__
(self):
self.items =
defpush(self, ele):
defpeek(self):
return self.items[-1]
defpop(self):
top =self.items.pop()
return
topclass
superstack(stack):
def__init__
(self):
self.stack =stack()
self.temp =stack()
#入棧的時候把最小的元素放到輔助棧棧頂
defpush(self, ele):
if self.temp.items ==:
self.temp.push(ele)
elif ele
self.temp.push(ele)
self.stack.push(ele)
#出棧的時候一直pop直到等於輔助棧棧頂元素的元素出現
defpop(self):
min =self.temp.peek()
while
true:
if self.stack.peek() !=min:
print(f'
pop:')
else
:
print(f'
min:')
break
if__name__ == '
__main__':
ss =superstack()
ss.push(22)
ss.push(3)
ss.push(33)
ss.push(4)
ss.push(55)
ss.push(12)
ss.push(13)
ss.push(16)
ss.pop()
求棧的最小元素
2.設計包含min函式的棧。定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素。要求函式min push以及pop的時間複雜度都是o 1 思路 我看到這道題目時,第一反應就是每次push乙個新元素時,將棧裡所有逆序元素排序。這樣棧頂元素將是最小元素。但由於不能保證最後push進棧的元素最...
求棧中的最小元素
定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素,要求函式min push以及pop的時間複雜度都是o 1 主要難點 將當前最小的元素min出棧之後,如何快速找到下乙個最小的元素?因此需要乙個輔助棧,每次push乙個新元素的時候,同時將最小元素push到輔助棧中 每次pop乙個元素出棧...
python3 刪除字典元素
python不關心鍵 值對的新增順序,而只關心鍵和值之間的關聯關係。pop 刪除給定健對應的值,如 dict.pop key key不能為空 clear 清空字典內容,dict.clear popitem 隨機刪除字典內容,dict.popitem 使用del語句刪除字典的鍵 值對 fruits p...