zoukankan      html  css  js  c++  java
  • 包含min函数的栈

    题目:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。

    思路:维护两个栈,一个每次添加的所有的数,另一个添加每次最小值(当前值比栈顶小则添加,都否添加当前栈顶),pop时两个栈都要出

     Stack<Integer> mData=new Stack<Integer>();
        Stack<Integer> mMin=new Stack<Integer>();
        //java中的peek()和c++中的top()只返回头,不移除,pop要移除
        public void push(int node) {
            if(mData.empty()){
                mMin.push(node);
            }
            
            if(node<mMin.peek()){
                mMin.push(node);
            }else{
                
                mMin.push(mMin.peek());
            }
            mData.push(node);
        }
        
        public void pop() {
            if(mData.size()>0&&mMin.size()>0){
                mData.pop();
                   mMin.pop();
            }
         }
            
        
        public int top() {
            
            return (int)mData.peek();
        }
        
        public int min() {
            if(mMin.empty()){
                return 0;
            }
            return (int)mMin.peek();
        }
  • 相关阅读:
    亚洲区哈尔滨赛区网络预选赛over
    背包问题
    Memcache基础教程
    Telnet的命令
    Telnet技术白皮书
    workthread模式
    Telnet的命令
    telnet 测试memcached
    telnet 测试memcached
    Memcache基础教程
  • 原文地址:https://www.cnblogs.com/team42/p/6682083.html
Copyright © 2011-2022 走看看