【发布时间】:2021-09-08 18:17:11
【问题描述】:
我正在解决一个问题:
给定一个数组 A[1,2,...,n],问题是计算大反转对的数量。大反转是一对索引 (i, j) 使得:2.i 2.A[j]。
我们需要在 O(nlogn) 时间内解决这个问题。 我已经坚持了一段时间,并且不知道如何尊重索引 (2i
【问题讨论】:
我正在解决一个问题:
给定一个数组 A[1,2,...,n],问题是计算大反转对的数量。大反转是一对索引 (i, j) 使得:2.i 2.A[j]。
我们需要在 O(nlogn) 时间内解决这个问题。 我已经坚持了一段时间,并且不知道如何尊重索引 (2i
【问题讨论】:
我不确定分而治之,但我们可以从索引 n / 2 开始向下迭代。当我们迭代时,将满足其索引大于 2*i 的元素插入到顺序统计树中。随着树的生长,每个这样的元素都会被插入一次。为索引 i 处的每个元素报告树中有多少元素低于 A[i] / 2。
【讨论】: