Учитывая два массива (не отсортированные) M и N. Мне нужно найти три индекса x, y (в M) и z (в N), для которых M [x] + M [y] = N [z]. Мой первоначальный алгоритм принимает решение O (m * m * n). Обратите внимание: я должен найти индексы, и сортировка изменит индексы.Найдите три индекса x, y, z таких, что M [x] + M [y] = N [z]
O (м * м * п) псевдокод (где т и п длина соответствующего массива):
for(int i = 0; i < m - 1; i++)
for(int j = i + 1; j < m; j++)
for(int k = 0; k < n; k++)
if(M[i] + M[j] == N[k] {
print i, j, k
}
Я ищу более оптимальное решение.
Спасибо.
есть поиск google о проблеме 'k-SAT'. в частности, вы решаете проблему «2-SAT», которая находится в ключевом слове P. optimization: meet-in-the-middle. – HuStmpHrrr