第二題 設計包含min函式的棧

2021-06-22 04:55:30 字數 704 閱讀 4235

題目部落格:

題目:定義棧的資料結構,要求新增乙個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...