Digamos que você tenha k
matrizes de tamanho N
, cada uma contendo valores exclusivos de 1
até N
.
Como você encontraria os dois números que estão, em média, os mais distantes um do outro?
Por exemplo, dadas as matrizes:
[1,4,2,3]
[4,2,3,1]
[2,3,4,1]
Então a resposta seria item 1
e 2
, porque eles estão à distância 2 nos dois primeiros arrays e 3 números no último.
Estou ciente de uma solução O (kN ^ 2) (medindo a distância entre cada par de números para cada uma das k
matrizes), mas existe uma solução melhor?
Quero implementar esse algoritmo em C ++, mas qualquer descrição de uma solução seria útil.