有2中方案,分别用类和内部类实现了
import java.util.Stack;
/**
* @author chenyu 第一种设计:
* 题目:设计一个有getMin功能的栈,设计一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作
* 要求:1 pop push getMin操作的时间复杂度都是O(1)
* 2 设计的栈类型可以使用线程的栈结构
* 思路:压入数据规则:假设当前数据时value,先将其压入stackData,然后判断stackMin是否为空,
* 如果为空,则value压入stackMin
* 如果不能空,则比较value和stackMin中栈顶元素的哪一个更小
* 如果value更小或者两者相等,则将value也压入stackMin
* 如果value中栈顶元素小,则stackMin不压入任何内容,如下例子
* 1-------->1
* 2------->无
* 1-------->1
* 5-------->无
* 4-