zoukankan      html  css  js  c++  java
  • 包含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();
        }
    };

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

  • 相关阅读:
    NetStat
    Linux远程目录挂载
    Mysql服务彪高排查方式及索引的正确使用步骤
    Linux查看哪些进程占用的系统 buffer/cache 较高 (hcache,lsof)命令
    防止sql注入的最好方式
    Fortify---Detail--Sql注入
    百亿级数据处理优化
    半年的总结和思考,继续前行
    Protoc Buffer 优化传输大小的一个细节
    RPC
  • 原文地址:https://www.cnblogs.com/cunyusup/p/14915540.html
Copyright © 2011-2022 走看看