优秀的编程知识分享平台

网站首页 > 技术文章 正文

包含min函数的栈(包含min函数的栈 python)

nanyue 2024-08-04 16:49:36 技术文章 10 ℃

包含min函数的栈

定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min push pop的时间复杂度都是o(1)

思路:定义一个数据栈和一个辅助栈,数据栈正常进行push pop操作的时候,

辅助栈观察栈顶元素与当前元素的大小,存小的,即使自身小也存。

参考代码:

#include <iostream>
#include <stack>
using namespace std;

stack<int> data;
stack<int> aid;

void mypush(int num)
{
    data.push(num);
    if(aid.size() == 0 || num < aid.top())
        aid.push(num);
    else
        aid.push(aid.top());
}

void mypop()
{
    data.pop();
    aid.pop();
}

int mymin()
{
    return aid.top();
}

int main()
{
    for(int i = 0;i < 10;i++)
        mypush(i);

    int min = mymin();
    cout << min <<endl;
    return 0;
}
最近发表
标签列表