包含min函数的栈
Posted Yvettey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了包含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函数的栈的主要内容,如果未能解决你的问题,请参考以下文章