сортировка массива с помощью любого алгоритма сортировки, предпочтительно с приемлемым порядком, например, mergeSort (O (nlogn));
затем начинаем проверять первый и последний элемент массива и сохраняем их индексы, а именно: «начало» и «конец».
в то время как последний элемент больше, чем желаемое значение, уменьшите индекс на единицу, затем сравните эту сумму «начало» и «конец» с желаемым значением,
если оно больше желаемого значения, вы не найдете двух значений, удовлетворяющих вашему условию,
если оно равно вашему желаемому значению, сообщите элементы start и end
, если его значение меньше желаемого значения, увеличивается индекс 'start'
и сделайте сравнение снова,
повторять, пока два индекса не встретятся друг с другом.
наконец, сложность будет: O (n) + O (nlogn), что равно O (nlogn)