【每日一题】【使用list&使用辅助栈实现】2022年2月11日-NC90 包含min函数的栈

描述
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的 min 函数,输入操作时保证 pop、top 和 min 函数操作时,栈中一定有元素。

此栈包含的方法有:
push(value):将value压入栈中
pop():弹出栈顶元素
top():获取栈顶元素
min():获取栈中最小元素

 

方法1:使用list实现,非函数本意

import java.util.*;

public class Solution {

    ArrayList<Integer> list = new ArrayList<>();
    public void push(int node) {
        list.add(0, node);
    }
    
    public void pop() {
        list.remove(0);
    }
    
    public int top() {
        return list.get(0);
    }
    
    public int min() {
        return Collections.min(list);
    }
}

方法2:使用辅助栈

import java.util.Stack;

public class Solution {

    Stack<Integer> main = new Stack<>();
    Stack<Integer> helper = new Stack<>();
    public void push(int node) {
        main.add(node);
        if(helper.isEmpty() || helper.peek() > node) {
            helper.add(node);
        } else {
            helper.add(helper.peek());
        }
    }
    
    public void pop() {
        main.pop();
        helper.pop();
    }
    
    public int top() {
        return main.peek();
    }
    
    public int min() {
        return helper.peek();
    }
}

 

posted @ 2022-02-11 23:02  哥们要飞  阅读(23)  评论(0编辑  收藏  举报