Найдите два элемента в массиве, сумма которых равна k [дубликат]

Возможный дубликат: Вход: целое число k

. Выход: все два набора элементов с суммой элементов в каждом наборе, равной k в O (n).

Пример:

A = {3,4,5,1,4,2}

Ввод: 6
Вывод: {3,3}, {5,1}, {4,2}

Примечание: я знаю решение O (n logn), но для этого потребуется отсортировать массив. Есть ли способ решить эту проблему за O (n). Можно использовать нетривиальную структуру данных C ++, т.е. нет ограничений по пространству

9
задан Community 23 May 2017 в 12:34
поделиться