定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的 min 函数,输入操作时保证 pop、top 和 min 函数操作时,栈中一定有元素。
思路
栈 s 正常模拟栈;
栈 t 保存所有小于等于栈顶的元素;
当 s 出栈元素等于 t 的栈顶元素时,t 也出栈;
Python
classSolution: s =[] t =[]defpush(self,node):self.s.append(node)ifnotself.t orself.t[-1]>= node:# 注意是大于等于self.t.append(node)defpop(self):ifself.s.pop()==self.t[-1]:self.t.pop()deftop(self):returnself.s[-1]defmin(self):returnself.t[-1]