zoukankan      html  css  js  c++  java
  • Easy | LeetCode 155 | 剑指 Offer 30. 包含min函数的栈 | 设计

    剑指 Offer 30. 包含min函数的栈

    难度简单81

    定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。

    示例:

    MinStack minStack = new MinStack();
    minStack.push(-2);
    minStack.push(0);
    minStack.push(-3);
    minStack.min();   --> 返回 -3.
    minStack.pop();
    minStack.top();      --> 返回 0.
    minStack.min();   --> 返回 -2.
    

    提示:

    1. 各函数的调用总次数不超过 20000 次

    解题思路

    设计一个辅助栈,与元素栈同步插入与删除,用于存储与每个元素对应的最小值。

    class MinStack {
    
        private LinkedList<Integer> stack;
        private LinkedList<Integer> minNumberStack;
    
        /** initialize your data structure here. */
        public MinStack() {
            stack = new LinkedList<Integer>();
            minNumberStack = new LinkedList<Integer>();
            minNumberStack.addLast(Integer.MAX_VALUE);
        }
        
        public void push(int x) {
            minNumberStack.addLast(Math.min(x, getMin()));
            stack.addLast(x);
        }
        
        public void pop() {
            stack.removeLast();
            minNumberStack.removeLast();
        }
        
        public int top() {
            return stack.getLast();
        }
        
        public int getMin() {
            return minNumberStack.getLast();
        }
    }
    
  • 相关阅读:
    ValueStack、ActionContext
    s debug
    1923: [Sdoi2010]外星千足虫
    1013: [JSOI2008]球形空间产生器sphere
    HDU 3923 Invoker
    poj 1286 Necklace of Beads
    HDU 3037:Saving Beans
    2440: [中山市选2011]完全平方数
    1101: [POI2007]Zap
    1968: [Ahoi2005]COMMON 约数研究
  • 原文地址:https://www.cnblogs.com/chenrj97/p/14295471.html
Copyright © 2011-2022 走看看