面试题三十:包含min函数的栈

 

定义一个栈的数据结构,请实现一个每次都能找到栈中的最小元素,要求时间复杂度O(1)。意思就是说每次进栈出栈后,min函数总能在时间1的前提下找到。
方法一:由于每次循序遍历栈的话时间复杂度为n,所以要想时间1,就必须牺牲空间换时间,

  在原有栈的基础上,再定义一个最小值数据栈和保存现有最小值min变量,每次栈的压入操作时,这个元素和min比较,把结果最小值压入数据栈,数据栈栈顶元素就是最小值。出栈则比较出的是最小值,否则两个栈都要pop

posted @ 2020-03-29 14:54  浪波激泥  阅读(164)  评论(0编辑  收藏  举报