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

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

    思路:可以用一个变量来保存当前最小的数,但是这样在最小的数出栈之后剩余数的最小数怎么获取?这就需要使用一个同样大小的辅助栈,辅助栈保存当前最小的数,这样就能实现题目所要求的min函数。

    实现代码:

    import java.util.Stack;
    
    public class Solution {
        
        public Stack<Integer> mainStack;
        
        public Stack<Integer> minStack;
        
        public Solution() {
            mainStack = new Stack<Integer>();
            minStack = new Stack<Integer>();
        }
    
        
        public void push(int node) {
            mainStack.push(node);
            
            if(minStack.isEmpty()) {
                minStack.push(node); 
            }
            else {
                int cur = minStack.peek();
                if(node < cur)
                    minStack.push(node);
                else
                    minStack.push(cur);
            }
        }
        
        public void pop() {
            if(!mainStack.isEmpty()) {
                mainStack.pop();
                minStack.pop();
            }
                
        }
        
        public int top() {
            if(!mainStack.isEmpty())
                return mainStack.peek();
            else
                return 0;
        }
        
        public int min() {
            if(!minStack.isEmpty())
                return minStack.peek();
            else
                return 0;
        }
    }
  • 相关阅读:
    从零搭建springboot+mybatis逆向工程
    基础SQL总结
    Map集合浅谈
    ArrayList、LinkedList与Vector的区别
    java多线程总结
    P4108 [HEOI2015]公约数数列
    P2168 [NOI2015] 荷马史诗
    正睿 2021 Noip 十连测 Day2
    CF772E Verifying Kingdom
    BZOJ1767 [CEOI2009] Harbingers
  • 原文地址:https://www.cnblogs.com/wxisme/p/5320062.html
Copyright © 2011-2022 走看看