Начните максимум с первого элемента, а не с нуля, иначе массив из отрицательных чисел даст неверный ответ. Для пустого массива явно выберите ошибку или OptionalInt.
Поиск наибольшего числа в массиве
Начните максимум с первого элемента, а не с нуля, иначе массив из отрицательных чисел даст неверный ответ. Для пустого массива явно выберите ошибку или OptionalInt.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо реализовать функцию, которая принимает массив целых чисел и возвращает его максимальное значение.
// возвращает максимальное число из массива чисел
private static int findMaximum(int[] arr) {
// возвращает максимальное число из массива чисел
return 0;
}
Ответ
Начните максимум с первого элемента, а не с нуля, иначе массив из отрицательных чисел даст неверный ответ. Для пустого массива явно выберите ошибку или OptionalInt.
private static int findMaximum(int[] arr) {
java.util.Objects.requireNonNull(arr);
if (arr.length == 0) throw new IllegalArgumentException("Пустой массив");
int maximum = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > maximum) maximum = arr[i];
}
return maximum;
}
Время O(n), память O(1). Сортировать массив ради максимума не нужно: это дороже и может изменить вход. Для одного элемента он же является ответом.