題目部落格:
題目:定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素。
要求函式min、push以及pop的時間複雜度都是o(1)。
。。。。。。。。。。。。。。。。。。。。。。。。。
怎麼可能min.push,pop都為0(1)呢。。我不信啊。。
__author__ = 'administrator'
import heapq
class mystack:
def __init__(self):
self.inlist=[0]*1000
self.top=0
def isempty(self):
return self.top==0
def push(self,data):
#self.top+=1
self.inlist[self.top]=data
self.top+=1
def pop(self):
self.top-=1
value=self.inlist[self.top]
self.inlist[self.top]=0
return value
def min(self):
pass
呃。。。。。居然是這樣。。但這樣有什麼用呢?這還是棧嗎?都不lifo了。。還是棧嗎。
(二)設計包含min函式的棧
設計包含min函式的棧 定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素 要求函式min push以及pop的時間複雜度都是o 1 分析 要得到當前棧的最小元素,且時間複雜度為o 1 這不但要求知道當前棧中的最小元素值 或其所在位置 而且要知道次小元素,這樣才能保證,如果當前棧頂元素為...
100題 設計包含min 函式的棧
定義棧的資料結構,要求新增乙個min 函式,能夠得到棧的最小元素。要求函式min push 以及pop 的時間複雜度都是 o 1 include include include using namespace std templateclass mystack 析構函式 virtual mystac...
設計包含min函式的棧
本文 題目 定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素。要求函式min push以及pop的時間複雜度都是o 1 分析 這是去年google的一道面試題。我看到這道題目時,第一反應就是每次push乙個新元素時,將棧裡所有逆序元素排序。這樣棧頂元素將是最小元素。但由於不能保證最後p...