
Описание, условие и объяснение алгоритма решения задачи на YouTube — КЛИК
twoSum()
— метод, который находит два числа в массиве, сумма которых равна заданному числу «k».Цикл
for
перебирает все элементы массива. Для каждого элемента определяем число, которое необходимо найти, чтобы получить сумму k
. Для этого из k
вычитается текущий элемент nums[i]
.Затем определяется два указателя —
left
и right
. left
указывает на следующий элемент после текущего, а right
— на последний элемент массива.Внутри цикла
while
выполняется бинарный поиск:mid
между left
и right
;nums[mid]
равно искомому числу (numberToFind), то возвращается массив с текущим элементом nums[i]
и число nums[mid]
;numberToFind < nums[mid]
, то right = mid - 1
, чтобы продолжить поиск левее;numberToFind > nums[mid]
, то left = mid + 1
, чтобы продолжить поиск правее;Если внутри цикла
while
не найдено равное число, то переходим к следующему элементу массива и повторяем процесс поиска. Если после перебора всех элементов не найдена пара чисел, возвращается пустой массив new int[0]
.