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();
        }
    };

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

  • 相关阅读:
    node
    github
    [模块] pdf转图片-pdf2image
    python 15 自定义模块 随机数 时间模块
    python 14 装饰器
    python 13 内置函数II 匿名函数 闭包
    python 12 生成器 列表推导式 内置函数I
    python 11 函数名 迭代器
    python 10 形参角度 名称空间 加载顺序
    python 09 函数参数初识
  • 原文地址:https://www.cnblogs.com/cunyusup/p/14915540.html
Copyright © 2011-2022 走看看