Начните с первого элемента и заменяйте максимум при встрече большего. Для пустого массива максимальное значение не определено, поэтому его следует отклонить.
Нахождение наибольшего элемента в массиве
Начните с первого элемента и заменяйте максимум при встрече большего. Для пустого массива максимальное значение не определено, поэтому его следует отклонить.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Напишите функцию findMaximum, принимающую массив целых чисел и возвращающую максимальное значение из него. При реализации используйте только базовые конструкции Java, без применения Stream API, классов из Collections и методов сортировки.
private static int findMaximum(int[] arr) {
// реализовать поиск максимума вручную
}
Ответ
Начните с первого элемента и заменяйте максимум при встрече большего. Для пустого массива максимальное значение не определено, поэтому его следует отклонить.
private static int findMaximum(int[] arr) {
if (arr == null || arr.length == 0) throw new IllegalArgumentException();
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) max = arr[i];
}
return max;
}
Время O(n), дополнительная память O(1). Исходный порядок сохраняется. Начальное значение 0 неверно для массива отрицательных чисел; первый элемент подходит для любого непустого набора, включая Integer.MIN_VALUE.