Нахождение наибольшего и наименьшего элемента в массиве

Найдите экстремумы одним проходом без сортировки и разворачивания большого массива в аргументы. Для пустого массива явно выберите поведение, например возврат null.

Короткий ответ

Что ответить на собеседовании

Найдите экстремумы одним проходом без сортировки и разворачивания большого массива в аргументы. Для пустого массива явно выберите поведение, например возврат null.

Подробный разбор

Ответ с пояснениями

Условие

Разработайте две отдельные функции. Первая должна принимать массив и возвращать в нём максимальное значение, вторая – аналогично, но возвращать минимальное значение.

Ответ

Найдите экстремумы одним проходом без сортировки и разворачивания большого массива в аргументы. Для пустого массива явно выберите поведение, например возврат null.

function maximum(numbers) {
  if (!numbers.length) return null;
  let result = numbers[0];
  for (let i = 1; i < numbers.length; i++) if (numbers[i] > result) result = numbers[i];
  return result;
}
function minimum(numbers) {
  if (!numbers.length) return null;
  let result = numbers[0];
  for (let i = 1; i < numbers.length; i++) if (numbers[i] < result) result = numbers[i];
  return result;
}

Контракт предполагает плотный массив чисел без NaN; его политику нужно задать отдельно. Старт с первого элемента корректен и для полностью отрицательного массива. Каждая функция имеет время O(n) и дополнительную память O(1).

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее