首页 > 其他 > 详细

剑指offer——30包含min函数的栈

时间:2019-10-14 22:54:46      阅读:93      评论:0      收藏:0      [点我收藏+]

题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
 
题解:
  借助辅助栈,新的数据<=f辅助栈顶时,就压入辅助栈,这样,就能保证辅助找栈顶永远是最小数。
 
  
 1 class Solution {
 2 public:
 3     void push(int value) {
 4         dataS.push(value);
 5         if (dataMin.empty() || dataMin.top() >= value)
 6             dataMin.push(value);
 7     }
 8     void pop() {
 9         if (dataS.top() == dataMin.top())
10             dataMin.pop();
11         dataS.pop();
12     }
13     int top() {
14         return dataS.top();
15     }
16     int min() {
17         return dataMin.top();
18     }
19 private:
20     stack<int>dataS, dataMin;
21 };

 

剑指offer——30包含min函数的栈

原文:https://www.cnblogs.com/zzw1024/p/11674411.html

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