包含min函数的栈

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了包含min函数的栈相关的知识,希望对你有一定的参考价值。

题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
 
public class Solution {
    Stack<Integer> data = new Stack<>();
    Stack<Integer> min = new Stack<>();
    
    Integer tmp = null;
    public void push(int node) {
        if(tmp!=null){
            if(node<=tmp){
                tmp = node;
                min.push(node);
            }
            data.push(node);
        }else{
            min.push(node);
            tmp = node;
            data.push(node);
        }
        
    }
    
    public void pop() {
        int num = data.pop();
        int num2 = min.pop();
        if(num!=num2){
            min.push(num2);
        }
    }
    
    public int top() {
        int num = data.pop();
        data.push(num);
        return num;
    }
    
    public int min() {
        int num = min.pop();
        min.push(num);
        return num;
    }
}

 

以上是关于包含min函数的栈的主要内容,如果未能解决你的问题,请参考以下文章

包含min函数的栈

20.包含min函数的栈

Coding Interviews 20 包含min函数的栈

剑指offer(20)包含min函数的栈

剑指Offer30包含min函数的栈

剑指Offer30包含min函数的栈