Найти подходящую пару цифр в массиве
Задача заключается в том, чтобы вернуть все пары целых чисел из входящего массива целых чисел, которые имеют разность 2. Долго ломал голову, пробовал через циклы, но видимо все гораздо проще. Примеры:
[1, 2, 3, 4] -> [[1, 3], [2, 4]]
[4, 3, 1, 5, 6] -> [[1, 3], [3, 5], [4, 6]]
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Наиболее простая реализация - конечно, с двумя вложенными циклами, ну это, похоже, Вы уже умеете.
Ради эффективности - если массив отсортировать, то можно использовать метод двух индексов, правого и левого. Псевдокод
l_idx = 0
r_idx = 1
while l_idx, r_idx < A.length
if A[r_idx] < A[l_idx] + 2
r_idx++
else if A[r_idx] == A[l_idx] + 2
output pair (A[l_idx], A[r_idx])
else
l_idx++