Нам нужно найти пару чисел в массиве, сумма которого равна заданному значению.
A = {6,4,5,7,9,1,2}
Сумма = 10 Тогда пары - {6,4}, {9,1}
У меня есть два решения для этого.
- решение O (nlogn) - сортировать + проверять сумму с помощью двух итераторов (начало и конец).
- решение O (n) - хеширование массива. Затем проверьте, существует ли
sum-hash[i]
в хэш-таблице или нет.
Но проблема в том, что хотя второе решение - это время O (n), но также использует O (n) пространство.
Итак, мне было интересно, можем ли мы сделать это в O (n) времени и O (1). И это НЕ домашнее задание!