假设你有k个大小为N的数组,每个数组都包含从1到N的唯一值。如何找出平均距离最远的两个数字?
例如,给定以下数组:
那么答案将是项目
我知道一种 O(kN^2) 的解决方案(通过测量每对数字在 k 个数组中的距离),但是否有更好的解决方案?
我想在 C++ 中实现这样的算法,但任何解决方案说明都将非常有帮助。
例如,给定以下数组:
[1,4,2,3]
[4,2,3,1]
[2,3,4,1]
那么答案将是项目
1
和 2
,因为它们在前两个数组中的距离相差 2,在最后一个数组中相差 3 个数字。我知道一种 O(kN^2) 的解决方案(通过测量每对数字在 k 个数组中的距离),但是否有更好的解决方案?
我想在 C++ 中实现这样的算法,但任何解决方案说明都将非常有帮助。