#2154. 最小栈

最小栈

当前没有测试数据。

问题描述

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

实现 MinStack 类:

  • MinStack() 初始化堆栈对象。
  • void push(int val) 将元素val推入堆栈。
  • void pop() 删除堆栈顶部的元素。
  • int top() 获取堆栈顶部的元素。
  • int getMin() 获取堆栈中的最小元素。

格式

输入

第一行一个整数 nn,表示接下来有 nn 个调用操作。 接下来的 nn 行,每行一个字符串,表示一个操作。 如该操作有参数,则与字符串在同一行,一个空格隔开。

输出

每个查询操作输出一个整数,即查询的结果。

样例

8
MinStack
push -2
push 0
push -3
getMin
pop
top
getMin
-3
0
-2

提示

样例说明

MinStack
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin();   // 返回 -3.
minStack.pop();
minStack.top();      // 返回 0.
minStack.getMin();   // 返回 -2.

数据范围

  • -231 <= val <= 231 - 1
  • poptopgetMin 操作总是在 非空栈 上调用
  • push, pop, top, and getMin最多被调用 3 * 104