Даны два непустых слайса целых чисел a и b. Верните наименьшее значение
|a[i] − b[j]| по всем парам i, j.
// MinAbsDiff возвращает min |a[i] - b[j]| по всем парам.
func MinAbsDiff(a, b []int) int
Примеры
a = [3, 12, 17, 6, 22], b = [5, 18, 7, 9] → 1 (17 и 18, или 6 и 5, или 6 и 7)
a = [1, 10], b = [10] → 0
a = [-5], b = [5] → 10
Ограничения
1 ≤ len(a), len(b) ≤ 2·10⁵, |a[i]|, |b[j]| ≤ 10¹⁸ (разность помещается в
int64, но не в int32).
- Входные слайсы менять нельзя.
- Перебор всех пар — O(n·m) — не уложится по времени. Ожидается
O(n log n + m log m).
Разбор и эталонное решение — после своей попытки: на собеседовании подсказок не будет.
Сначала попробуй сам — подсказки не дают готовый ответ.