Skip to the content.

包含min函数的栈


Contact me:

Blog -> https://cugtyt.github.io/blog/index
Email -> cugtyt@qq.com
GitHub -> Cugtyt@GitHub


来自牛客 剑指offer

题目描述

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

stack<int> values;
stack<int> ms;

void push(int value) {
    values.push(value);
    if (ms.size() > 0) {
        ms.push(::min(ms.top(), value));
    } else {
        ms.push(value);
    }
}

void pop() {
    if (values.size() > 0) {
        values.pop();
        ms.pop();
    }
}

int top() {
    return values.top();
}

int min() {
    return ms.top();
}