Last updated 2 years ago
包含min函数的栈_牛客题霸_牛客网
问题简述
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的 min 函数,输入操作时保证 pop、top 和 min 函数操作时,栈中一定有元素。
思路
栈 s 正常模拟栈;
s
栈 t 保存所有小于等于栈顶的元素;
t
当 s 出栈元素等于 t 的栈顶元素时,t 也出栈;
class Solution: s = [] t = [] def push(self, node): self.s.append(node) if not self.t or self.t[-1] >= node: # 注意是大于等于 self.t.append(node) def pop(self): if self.s.pop() == self.t[-1]: self.t.pop() def top(self): return self.s[-1] def min(self): return self.t[-1]