Сложность: medium
Вам дано m массивов, где каждый массив отсортирован по возрастанию. Вы можете взять два целых числа из двух разных массивов (каждый массив выбирает одно) и вычислить расстояние. Мы определяем расстояние между двумя целыми числами a и b как их абсолютную разность |a - b|. Верните максимальное расстояние.
Пример:
Input: arrays = [[1,2,3],[4,5],[1,2,3]]
Output: 4
👨💻 Алгоритм:
1⃣Найдите минимальный элемент из всех первых элементов массивов и максимальный элемент из всех последних элементов массивов.
2⃣Рассчитайте максимальное расстояние между минимальным и максимальным элементами.
3⃣Верните это максимальное расстояние.
😎 Решение:
function maxDistance($arrays) {
$minElement = $arrays[0][0];
$maxElement = end($arrays[0]);
$maxDistance = 0;
for ($i = 1; $i < count($arrays); $i++) {
$array = $arrays[$i];
$maxDistance = max($maxDistance, abs(end($array) - $minElement), abs($maxElement - $array[0]));
$minElement = min($minElement, $array[0]);
$maxElement = max($maxElement, end($array));
}
return $maxDistance;
}Ставь 👍 и забирай 📚 Базу знаний
