包含min函数的栈

last modify

包含min函数的栈_牛客题霸_牛客网

问题简述

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的 min 函数,输入操作时保证 pop、top 和 min 函数操作时,栈中一定有元素。

思路

  • s 正常模拟栈;

  • t 保存所有小于等于栈顶的元素;

  • s 出栈元素等于 t 的栈顶元素时,t 也出栈;

Python
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]

Last updated