zoukankan      html  css  js  c++  java
  • Leetcode-Min Stack

    Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.

    • push(x) -- Push element x onto stack.
    • pop() -- Removes the element on top of the stack.
    • top() -- Get the top element.
    • getMin() -- Retrieve the minimum element in the stack.

    Solution:

     1 class MinStack {
     2     Stack<Integer> stack;
     3     int curMin;
     4     Stack<Integer> minStack;
     5 
     6 
     7     public MinStack(){
     8         stack = new Stack<Integer>();
     9         curMin = Integer.MAX_VALUE;
    10         minStack = new Stack<Integer>();
    11     }
    12 
    13 
    14     public void push(int x) {
    15         stack.push(x);
    16         if (x<=curMin){
    17             minStack.push(x);
    18             curMin = x;
    19         }
    20     }
    21 
    22     public void pop() {
    23         int val = stack.peek();
    24         stack.pop();
    25         if (val==curMin){
    26             minStack.pop();
    27             if (!minStack.isEmpty())
    28                 curMin = minStack.peek();
    29             else curMin = Integer.MAX_VALUE;
    30  
    31         }
    32     }
    33 
    34     public int top() {
    35         return stack.peek();
    36         
    37     }
    38 
    39     public int getMin() {
    40         return curMin;        
    41     }
    42 }
  • 相关阅读:
    python os的一些用法(-)
    python常用函数 time.strftime
    centos7 解压rar 文件
    centos7 开机启动设置
    python基础之Day15
    python基础之Day13
    python基础之Day12
    python基础之Day11
    python基础之Day10
    python基础之Day9
  • 原文地址:https://www.cnblogs.com/lishiblog/p/4129774.html
Copyright © 2011-2022 走看看