Задача
Дан массив различных чисел. Верните все пары с минимальной абсолютной разностью (в порядке возрастания).
Примеры
Пример 1
Input: arr = [4,2,1,3]
Output: [[1,2],[2,3],[3,4]]
Пояснение
Минимальная абсолютная разность равна 1. Все пары с разностью 1 в порядке возрастания.
Пример 2
Input: arr = [1,3,6,10,15]
Output: [[1,3]]
Пример 3
Input: arr = [3,8,-10,23,19,-4,-14,27]
Output: [[-14,-10],[19,23],[23,27]]
Решение
Решение
// Time: O(n log n) - сортировка // Space: O(n) - хранение результата var minimumAbsDifference = function(arr) { arr.sort((a, b) => a - b); let minDiff = Infinity; const result = []; // Первый проход - находим минимальную разницу for (let i = 1; i < arr.length; i++) { minDiff = Math.min(minDiff, arr[i] - arr[i - 1]); } // Второй проход - собираем пары с минимальной разницей for (let i = 1; i < arr.length; i++) { if (arr[i] - arr[i - 1] === minDiff) { result.push([arr[i - 1], arr[i]]); } } return result; };