剑指offer:包含min函数的栈
两个栈,始终保证两个栈的数值数量一样
push的时候
一个正常存储值,
另一个比较data与peek()的值,哪个小存储哪个
Stack<Integer> stack_data=new Stack<>(); Stack<Integer> stack_min=new Stack<>(); public void push(int node) { stack_data.push(node); if (stack_min.isEmpty()) { //min为空,没有peek(),直接放入 stack_min.push(node); }else if(node<min()){ //比peek()小,min放入data stack_min.push(node); }else { stack_min.push(min()); } } public void pop() { stack_data.pop(); stack_min.pop(); } public int top() { return stack_data.peek(); } public int min() { return stack_min.peek(); }
posted on 2017-08-28 22:25 zhangxiaoyu 阅读(99) 评论(0) 编辑 收藏 举报