zoukankan      html  css  js  c++  java
  • 剑指Offer:面试题21——包含min函数的栈(java实现)

    问题描述:

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

    思路:加入一个辅助栈用来存储最小值集合

    (这里要注意题目并没有说栈内的元素类型,因此要尽量通用)

    import java.util.Stack;
    
    public class Solution {
    
    
        Stack s1=new Stack();
        Stack min=new Stack();
        public void push(int node) {
            if(min.empty()){
                min.push(node);
            }else{
                int top=(int)min.peek();
                if(node<top){
                   min.push(node);
                }else{
                    min.push(top);
                }
            }
            s1.push(node);
        }
    
        public void pop() {
            if(!(s1.empty())){
                s1.pop();
                min.pop();
            }
        }
    
        public int top() {
            return (int)s1.peek();
        }
    
        public int min() {
           if(min.empty()){
               return 0;
           }
           return (int)min.peek();    
        }
    
    
    
    
    
    }
  • 相关阅读:
    汇总博客-Alpha
    Beta冲刺总结
    用户调查报告
    Beta成果测试总结
    Beta 冲刺 (9/9)
    Beta 冲刺 (8/9)
    Beta 冲刺 (7/9)
    Beta 冲刺 (6/9)
    Beta 冲刺 (5/9)
    Beta 冲刺 (4/9)
  • 原文地址:https://www.cnblogs.com/wenbaoli/p/5655713.html
Copyright © 2011-2022 走看看