Dada una matriz A de números enteros, encontrar cualquier 3 de ellos que sumar a cualquier dada T.O (NlogN) encontrar 3 números que tienen una suma de cualquier T arbitraria en una matriz
lo vi en alguna línea publicación, que afirma que tiene una solución O (NlogN).
Para 2 números, sé que hashtable podría ayudar para O (N), pero para 3 números, no puedo encontrar uno.
También creo que este problema suena familiar a algunos problemas difíciles, pero no puede recordar el nombre y, por lo tanto, no puede buscarlo en Google. (Mientras que lo peor es obviamente O (N^3), y con la solución a 2 números es realmente O (N^2))
Realmente no resuelve nada en el mundo real, solo me molesta ...
¿Alguna idea?
Muchos otros mensajes similares a la derecha. http://stackoverflow.com/questions/83547/algorithm-to-find-which-numeres-from-a-list-of-size-n-sum-to-another-number –
Esto es similar al problema de suma de subconjuntos, que es NP-Completo. Pero al limitar la longitud del subconjunto a 3, podría ser posible encontrar una solución rápida. –
Un problema difícil (NP completo) que tiene similitudes con este se llama http://en.wikipedia.org/wiki/Knapsack_problem. Por supuesto, la restricción aquí que eliges solo 3 enteros lo convierte en el peor O (n^3), por lo que no es exactamente lo mismo. –