【问题标题】:Number of big inversions in an array数组中的大反转数
【发布时间】:2021-09-08 18:17:11
【问题描述】:

我正在解决一个问题:

给定一个数组 A[1,2,...,n],问题是计算大反转对的数量。大反转是一对索引 (i, j) 使得:2.i 2.A[j]。

我们需要在 O(nlogn) 时间内解决这个问题。 我已经坚持了一段时间,并且不知道如何尊重索引 (2i

【问题讨论】:

    标签: algorithm mergesort


    【解决方案1】:

    我不确定分而治之,但我们可以从索引 n / 2 开始向下迭代。当我们迭代时,将满足其索引大于 2*i 的元素插入到顺序统计树中。随着树的生长,每个这样的元素都会被插入一次。为索引 i 处的每个元素报告树中有多少元素低于 A[i] / 2。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 2020-08-06
      • 1970-01-01
      相关资源
      最近更新 更多