【问题标题】:Bit Array with Find Max具有查找最大值的位数组
【发布时间】:2016-05-05 00:06:05
【问题描述】:

所以位数组和哈希表似乎并没有固有地允许 find-max 类型的操作,但是有一些方法可以绕过它。我想知道在某些情况下是否有一种方法可以单独使用位数组而无需额外的变量、指针或操作数组的开始/结束。比如……

我有整数 {1,...,n} 和一个 n 位位数组。为了保留整数的子集,我使用整数本身作为位数组中的键,如果它在子集中,则将该位设置为 1,否则设置为 0。

例如对于整数 {1,2,3,4} 和子集 {1,3),位数组看起来像 {1,0,1,0}。

如果不以某种方式移动位,似乎没有办法做到这一点,这让我相信 O(1) 梦想已经死去,也许位数组不起作用。在 O(log n) 中是否可能发生这样的事情?

谢谢

【问题讨论】:

    标签: hashtable time-complexity bitarray


    【解决方案1】:

    在长度为 n 的位数组上找到最高设置位是 O(n)。如果您需要更好,那么您将需要选择其他数据结构,或者在您的位图上保留一个高水位标记。

    【讨论】:

      猜你喜欢
      • 2020-04-03
      • 2019-02-24
      • 1970-01-01
      • 2017-01-17
      • 1970-01-01
      • 2020-08-24
      • 2018-10-05
      • 2017-12-26
      • 2021-09-15
      相关资源
      最近更新 更多