【每日一题】【使用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(); } }
本文来自博客园,作者:哥们要飞,转载请注明原文链接:https://www.cnblogs.com/liujinhui/p/15885121.html