【问题标题】:How to design a data structure which supports the following operations in constant time?如何设计一个在恒定时间内支持以下操作的数据结构?
【发布时间】:2014-09-21 05:52:55
【问题描述】:
  1. Push():向集合中添加一个元素。
  2. Pop():返回并移除此集合中的最小元素。
  3. Min():返回但不删除此集合中的最小元素。

【问题讨论】:

    标签: data-structures


    【解决方案1】:

    假设存在这样的数据结构。

    那么这里是一个基于O(n)比较的排序算法:

    1. Push() 每个项目到这个数据结构中。
    2. Pop() 按排序顺序将它们全部关闭。

    不存在基于 O(n) 比较的排序算法,因此不存在这样的数据结构。

    【讨论】:

      【解决方案2】:

      在 Stack 中可以进行恒定时间 push()、pop() 和 remove。下面的帖子演示了它:

      design a stack such that getMinimum( ) should be O(1)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-14
        • 2012-12-23
        • 1970-01-01
        • 2020-11-19
        • 2015-06-22
        相关资源
        最近更新 更多