📌 Решение задачи c собеседования в Apple и Google



Описание, условие и объяснение алгоритма решения задачи на 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].



➡️ Java Developer