首页 > 其他 > 详细

包含min函数的栈(剑指offer-20)

时间:2020-07-02 20:39:49      阅读:52      评论:0      收藏:0      [点我收藏+]

题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。

注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。

题目解析

Java里Stack的peek方法是返回栈顶的元素但不移除它,但Stack的pop方法是会移除的。

题目答案

 1 import java.util.Stack;
 2 
 3 public class Solution {
 4 
 5     private Stack<Integer> dataStack= new Stack<>();//数据栈
 6     private Stack<Integer> minStack= new Stack<>();//最小数的栈
 7 
 8     public void push(int node) {
 9         dataStack.push(node);
10         if(minStack.isEmpty() || minStack.peek()>dataStack.peek()){
11             minStack.push(dataStack.peek());
12         }
13         else minStack.push(minStack.peek());
14     }
15     
16     public void pop() {
17         if(!dataStack.isEmpty()) dataStack.pop();
18         if(!minStack.isEmpty()) minStack.pop();
19     }
20     
21     public int top() {
22         return dataStack.peek();// 取出数据栈的栈顶元素
23     }
24     
25     public int min() {
26         return minStack.peek();//取出含min函数的栈的栈顶元素
27     }
28 }

 

包含min函数的栈(剑指offer-20)

原文:https://www.cnblogs.com/yzhengy/p/13226813.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!