设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。

  • push(x) – 将元素 x 推入栈中。
  • pop() – 删除栈顶的元素。
  • top() – 获取栈顶元素。
  • getMin() – 检索栈中的最小元素。

155.最小栈

class MinStack:

    def __init__(self):
        """
        initialize your data structure here.
        """
        self.l = list()
        self.min = float("inf")

    def push(self, x: int) -> None:
        self.l.append(x)
        self.min = min(self.l)

    def pop(self) -> None:
        self.l.pop()
        if self.l == []:
            pass
        else:
            self.min = min(self.l)

    def top(self) -> int:
        n = len(self.l)
        if n == 0:
            return None
        return self.l[n - 1]

    def getMin(self) -> int:
        return self.min


# Your MinStack object will be instantiated and called as such:
# obj = MinStack()
# obj.push(x)
# obj.pop()
# param_3 = obj.top()
# param_4 = obj.getMin()

相关文章:

  • 2021-06-30
  • 2022-12-23
  • 2021-05-13
  • 2021-09-15
  • 2022-02-19
  • 2022-12-23
  • 2022-12-23
  • 2021-06-13
猜你喜欢
  • 2021-04-11
  • 2021-12-13
  • 2021-06-19
  • 2021-04-12
  • 2021-11-21
  • 2021-06-16
相关资源
相似解决方案