剑指offer刷题

包含min的函数栈

2019-05-29  本文已影响0人  侯俊同学

题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。

题解

class Solution {
public:
    void push(int value) {
        if(mins.empty()||value<mins.top())
            mins.push(value);
        numbers.push(value);
    }
    void pop() {
        try{
            if(mins.top()==numbers.top()){
                mins.pop();
            }
            numbers.pop();
        }catch(std::exception& e){
        }
    }
    int top() {
        try{
            return numbers.top();
        }catch(std::exception& e){
            return -1;
        }
    }
    int min() {
        try{
            return mins.top();
        }catch(std::exception& e){
            return -1;
        }
    }
private:
    stack<int> numbers;
    stack<int> mins;
};
上一篇下一篇

猜你喜欢

热点阅读