• 包含min函数的栈(辅助栈)


    包含min函数的栈
     算法知识视频讲解
    简单  通过率:32.95%  时间限制:1秒  空间限制:64M
     
    知识点
    • 题目
    • 题解(53)
    • 讨论(1k)
    • 排行

    描述

    定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数,并且调用 min函数、push函数 及 pop函数 的时间复杂度都是 O(1)
    push(value):将value压入栈中
    pop():弹出栈顶元素
    top():获取栈顶元素
    min():获取栈中最小元素
     
    示例:
    输入:    ["PSH-1","PSH2","MIN","TOP","POP","PSH1","TOP","MIN"]
    输出:    -1,2,1,-1
    解析:
    "PSH-1"表示将-1压入栈中,栈中元素为-1
    "PSH2"表示将2压入栈中,栈中元素为2,-1
    “MIN”表示获取此时栈中最小元素==>返回-1
    "TOP"表示获取栈顶元素==>返回2
    "POP"表示弹出栈顶元素,弹出2,栈中元素为-1
    "PSH-1"表示将1压入栈中,栈中元素为1,-1
    "TOP"表示获取栈顶元素==>返回1
    “MIN”表示获取此时栈中最小元素==>返回-1
     

    示例1

    输入:
     ["PSH-1","PSH2","MIN","TOP","POP","PSH1","TOP","MIN"]
    返回值:
    -1,2,1,-1
     
    class Solution {
    public:
        stack<int> norst;
        stack<int> minst;
        void push(int value) {
            norst.push(value);
            if(minst.empty()) minst.push(value);
            else{
                if(minst.top() <= value) minst.push(minst.top());
                else minst.push(value);
            }
        }
        void pop() {
            minst.pop();
            norst.pop();
        }
        int top() {
            return norst.top();
        }
        int min() {
            return minst.top();
        }
    };

    辅助栈记录最小值,没想到!

  • 相关阅读:
    StructureMap经典的IoC/DI容器
    移植的7zip到Vxworks 取名vx7zip
    试验Boost在Vxworks上的应用日记 三
    Log4cpp 崩溃
    试验Boost在Vxworks上的应用日记 一
    Vx7zip改进
    GoAhead 2.5 Web Server 网页ROM化的改进
    试验Boost在Vxworks上的应用日记 二
    原来CoreBluetooth 只支持Bluetooth Low Energy
    可变长结构体
  • 原文地址:https://www.cnblogs.com/cunyusup/p/14915540.html
Copyright © 2020-2023  润新知