Проверяет умение работать с массивами и базовыми алгоритмами поиска, что необходимо для решения повседневных задач обработки данных.
Поиск максимального элемента — одна из базовых задач при работе с массивами. Она встречается в анализе данных, статистике, играх, обработке сигналов и многих других областях. Суть проста: нужно перебрать все элементы и выбрать наибольший.
Алгоритм линеен: мы проходим массив один раз, поддерживая переменную max. Изначально в неё кладём первый элемент (или -Infinity, если массив может быть пустым). На каждом шаге сравниваем текущий элемент с max и при необходимости обновляем.
function findMax(arr) {
if (arr.length === 0) return null; // пустой массив
let max = arr[0];
for (let i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
console.log(findMax([3, 7, 2, 9, 5])); // 9
Math.max(...arr) — коротко, но может переполнить стек на больших массивах.arr.reduce((a, b) => a > b ? a : b) — функциональный стиль.Сложность алгоритма — O(n) по времени и O(1) по памяти. Это оптимально, так как в худшем случае нужно просмотреть каждый элемент.
Итог: линейный поиск максимума стоит применять всегда, когда массив не отсортирован и нужно одно наибольшее значение — это самый быстрый и простой способ.