Предположим, что существует массив размером N (N всегда четный). Учитывая, что все элементы массива образуют пару, которая дает такую же сумму при добавлении. Найдите сумму. Это определенно не домашнее задание. Например:Найдите пары чисел чисел в массиве со всеми парами, дающими ту же сумму
A = {1,4,3,2,5,6,8,7}. ans = 9, потому что {(1,8), (2,7), (3,6), (4,5)} образуют пары сумм 9.
Также могут быть дубликаты. B = {3,4,5,3,4,5}. ANS = 8
То, что я пытался это
1) Сортировка массива = O (NlogN).
2) найдите сумму min и max отсортированного массива. Это сумма, требуемая, потому что, если это что-то другое, кроме этих 2, будет по крайней мере одна пара, которая не может быть сформирована с одинаковой суммой. Надеюсь, я поняла.
Теперь мой вопрос, может ли это быть сделано в линейном времени как-то? Хеширование номеров напрямую не было бы достаточно, потому что «Сумма» не известна заранее.
Хотя это быстрый и действенный способ нахождения значения N, он ничего не говорит о том, как ** найти пары чисел ** (как задает вопрос), которые составляют до N. –
«Найти пары «находится в названии,« найти сумму »находится в первом абзаце, и« может ли он быть линейным »находится в последнем абзаце. ОП определенно мог бы уточнить. Но 'ans = 8' и' ans = 9', по-видимому, подразумевают, что OP просто хотел получить сумму. – Teepeemm