20.包含min函数的栈——剑指offer

题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
 1 class Solution {
 2 public:
 3     void push(int value) {
 4         res.push(value);
 5         if(Min.empty()) Min.push(value);
 6         else if(value < Min.top())
 7             Min.push(value);
 8         else Min.push(Min.top());
 9     }
10     void pop() {
11         if(!res.empty()){
12             res.pop();
13             Min.pop();
14         }
15     }
16     int top() {
17         return res.top();
18     }
19     int min() {
20         return Min.top();
21     }
22     private: stack<int> res;
23              stack<int> Min;
24 };

 

posted @ 2019-05-19 17:29  unique_ptr  阅读(92)  评论(0编辑  收藏  举报