面试题 30. 包含 min 函数的栈

题目描述

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

题解

辅助栈

class MinStack {
public:
    /** initialize your data structure here. */
    MinStack() {
        stk2.push(INT_MAX);
    }

    void push(int x) {
        stk1.push(x);
        stk2.push(min(x, stk2.top()));
    }

    void pop() {
        stk1.pop();
        stk2.pop();
    }

    int top() {
        return stk1.top();
    }

    int getMin() {
        return stk2.top();
    }

private:
    stack<int> stk1;
    stack<int> stk2;
};

/**
 * Your MinStack object will be instantiated and called as such:
 * MinStack* obj = new MinStack();
 * obj->push(x);
 * obj->pop();
 * int param_3 = obj->top();
 * int param_4 = obj->getMin();
 */

相关推荐

  1. 面试 30. 包含 min 函数

    2024-07-17 07:30:03       26 阅读
  2. 剑指offer面试31压入、弹出序列

    2024-07-17 07:30:03       31 阅读
  3. 【Q6-30min

    2024-07-17 07:30:03       52 阅读
  4. 面试经典---30.串联所有单词子串

    2024-07-17 07:30:03       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 07:30:03       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 07:30:03       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 07:30:03       62 阅读
  4. Python语言-面向对象

    2024-07-17 07:30:03       72 阅读

热门阅读

  1. OpenResty使用Lua笔记

    2024-07-17 07:30:03       26 阅读
  2. Springboot定义阿里云oss工具类

    2024-07-17 07:30:03       25 阅读
  3. 入门 git

    2024-07-17 07:30:03       22 阅读
  4. IPython 的 %history -p 命令:探索命令行历史的秘籍

    2024-07-17 07:30:03       30 阅读
  5. [NOIP2006 提高组] 作业调度方案(含代码)

    2024-07-17 07:30:03       20 阅读
  6. OpenSearch 第三方IoT设备日志分析

    2024-07-17 07:30:03       32 阅读
  7. Photoshop

    Photoshop

    2024-07-17 07:30:03      20 阅读
  8. Github07-16 Python开源项目日报 Top10

    2024-07-17 07:30:03       24 阅读