剑指offer-包含min函数的栈

题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
 
使用一个栈来保存当前的最小值
 1 public class Solution {//栈 my
 2     private int minValue = Integer.MAX_VALUE;
 3     private Stack<Integer> valueStack = new Stack();
 4     private Stack<Integer> minStack = new Stack();
 5     public void push(int node) {
 6         if(node<minValue){
 7             minValue = node;
 8         }
 9         valueStack.push(node);
10         minStack.push(minValue);
11     }
12 
13     public void pop() {
14         valueStack.pop();
15         minStack.pop();
16         minValue=  minStack.peek();
17     }
18 
19     public int top() {
20         return  valueStack.peek();
21     }
22 
23     public int min() {
24         return minValue;
25     }
26 }

 

posted @ 2019-04-11 21:30  月半榨菜  阅读(63)  评论(0编辑  收藏  举报