题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。
# -*- coding:utf-8 -*-
class Solution:
'''运行时间:27ms,占用内存:5624k'''
def __init__(self):
self.mystack = []
self.temp = []
def push(self, node):
# write code here
self.mystack.append(node)
if not self.temp:
self.temp.append(node)
else:
if self.temp[-1] < node:
self.temp.append(self.temp[-1])
else:
self.temp.append(node)
def pop(self):
# write code here
self.temp.pop(-1)
return self.mystack.pop(-1) if self.mystack != [] else None
def top(self):
# write code here
return self.mystack[-1] if self.mystack != [] else None
def min(self):
# write code here
return self.temp[-1]