如何在O(1)的时间复杂度下找到数组的最大值

怎么在O(1)的时间复杂度下找到数组的最大值?
一道面试题,写一个栈类,其中有个max()成员函数返回栈中最大元素,要求时间复杂度O(1)?
------解决思路----------------------
保存(data_,max_)这样一对的数据。
比如,入栈1 4 2 5 3
实际上保存的是(1,1), (4,4), (2,4), (5,5), (3,5)
------解决思路----------------------
http://blog.csdn.net/zhouqinghe24/article/details/40558195
------解决思路----------------------
这是CRCI里面讲到的一道题。

参考

如何在O(1)的时间复杂度下找到数组的最大值
如何在O(1)的时间复杂度下找到数组的最大值

最小换成最大,一样的效果。