数组模拟一个栈(push,pop和max_valcaozuo)

介绍

这个数组模拟的栈拥有push、pop还有找到当前栈的最大值的操作。

找到最大值的操作时间复杂度为o(1)。
主要就是push的时候会和前面的最大值比较,然后数组存储最大值,这里因为不用获取top所以没有用top函数。
具体应用题目链接

源码

class STACK
{
public:
    int cnt = 0;
    int f[100000] = {};
    void push(int x)
    {
        cnt ++;
        f[cnt] = max(f[cnt - 1], x);
    }   

    void pop()
    {
        if (cnt != 0) cnt --;
    }

    int max_val()
    {
        return f[cnt];  
    }
};
THE END