19 包含min函数的栈

题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
 
思路:一个栈存普通元素,一个最小栈存放目前位置最小的元素,只在压入的时候判断是否为空以及最小元素,其他情况正常处理。
class Solution {
public:
    void push(int value) {
        s.push(value);
        if(minS.empty()){
            minS.push(value);
        }
        else{
            int num = minS.top() < value ? minS.top() : value;
            minS.push(num);
        }
    }
    void pop() {
        s.pop();
        minS.pop();
    }
    int top() {
        if(!s.empty()){
            return s.top();
        }
        return -1;
    }
    int min() {
        if(!minS.empty()){
            return minS.top();
        }
        return -1;
    }
private:
    stack<int> s;
    stack<int> minS;
};

 

posted @ 2017-12-05 22:59  zqlucky  阅读(128)  评论(0编辑  收藏  举报