gpt4 book ai didi

arrays - 给定区间内 1 个未排序数组元素的差异

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:54:47 25 4
gpt4 key购买 nike

假设我们有一个未排序的数组,它由整数组成。我们还有 2 个给定的整数 L 和 M。我们的任务是计算所有具有以下属性的 (i,j) 对的数量: L<=A[j]-A[i]<=M。

除了检查所有可能对(O(n^2) 复杂度)的明显蛮力算法之外,是否有更快的方法来解决此问题?

最佳答案

我假设您只需要计算不同对的数量,否则您无法期望比 O(n^2) 更好的最坏情况复杂度。

您可以在跟踪原始数组索引的 O(nlogn) 时间内对数组进行排序。

然后只需扫描排序后的数组并维护两个指针,使得它们指向的索引之间的所有元素在 [L, M] 范围内具有绝对差异。这部分可以在线性时间内完成。

关于arrays - 给定区间内 1 个未排序数组元素的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40115546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com