首页 > 代码库 > 包含min函数的栈
包含min函数的栈
题目链接
要实现O(1)的复杂度,所以不能用循环等~只能使用辅助栈
Java 版本:
我的想法:
使用两个栈一个站用于存储入栈的序列,另一个栈存储当前的min值。插入一个就添加一个最小值,删除一个就删除一个最小值。
1 import java.util.Stack; 2 3 public class Solution { 4 5 Stack<Integer> dataStack =new Stack<Integer>(); 6 Stack<Integer> minStack =new Stack<Integer>(); 7 public void push(int node) { 8 dataStack.push(node); 9 if(minStack.empty()||minStack.peek()>node){ 10 minStack.push(node); 11 }else{ 12 minStack.push(minStack.peek()); 13 } 14 } 15 16 public void pop() { 17 dataStack.pop(); 18 minStack.pop(); 19 } 20 21 public int top() { 22 return dataStack.peek(); 23 } 24 25 public int min() { 26 return minStack.peek(); 27 } 28 }
包含min函数的栈
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。