0%

[0716] 最大栈

[0716] 最大栈

题目描述

设计一个最大栈,支持 push、pop、top、peekMax 和 popMax 操作。

 

  1. push(x) -- 将元素 x 压入栈中。
  2. pop() -- 移除栈顶元素并返回这个值。
  3. top() -- 返回栈顶元素。
  4. peekMax() -- 返回栈中最大元素。
  5. popMax() -- 返回栈中最大的元素,并将其删除。如果有多个最大元素,只要删除最靠近栈顶的那个。

 

样例 1:

MaxStack stack = new MaxStack();
stack.push(5); 
stack.push(1);
stack.push(5);
stack.top(); -> 5
stack.popMax(); -> 5
stack.top(); -> 1
stack.peekMax(); -> 5
stack.pop(); -> 1
stack.top(); -> 5

 

注释:

  1. -1e7 <= x <= 1e7
  2. 操作次数不会超过 10000。
  3. 当栈为空的时候不会出现后四个操作。

 

Related Topics
  • 设计
  • 题目解析

    • [请一句话描述题目…]

    不确定性

    方法一:[算法名称]

    分析

    思路

    注意

    知识点

    复杂度

    代码

    1
    //

    方法二:[算法名称]

    分析

    思路

    注意

    知识点

    复杂度

    代码

    1
    //

    相关题目