标签搜索

取堆栈最值

anker
2021-06-28 / 0 评论 / 18 阅读 / 正在检测是否收录...
  1. 问题描述

    设计一种数据结构,使得可以在O(1)的时间内取得最小值,同时要求PUSH和POP也是O(1)的时间复杂度。

  2. 方案:

    从题目要求来说,应该是一种支持堆栈操作方式的数据结构。栈的压入可以统计到当前已经入栈的所有元素中最值。出栈时,前面弹出的元素不会影响后面元素弹出时的最小值。

    因此可以使用辅助栈记录当前入栈的最小值。或者直接扩展栈元素内容。

  3. 实现:
    https://github.com/kelunce/data-structure/blob/master/stack_get_min.c
0

评论 (0)

取消