Определение наибольшего числа в массиве, полученном через varargs

Инициализируйте максимум первым элементом и сравните с ним остальные. Пустой varargs не имеет максимума, поэтому для него нужен явный отказ.

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

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

Инициализируйте максимум первым элементом и сравните с ним остальные. Пустой varargs не имеет максимума, поэтому для него нужен явный отказ.

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

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

Условие

Необходимо реализовать функцию, возвращающую наибольшее значение среди переданных чисел, используя параметр переменной длины (varargs). В решении допускаются только базовые возможности языка Java — нельзя применять Stream API, сортировку или сторонние библиотеки.

private static int getMax(int... values) {
    // вернуть максимальное число из массива values
}

Ответ

Инициализируйте максимум первым элементом и сравните с ним остальные. Пустой varargs не имеет максимума, поэтому для него нужен явный отказ.

private static int getMax(int... values) {
    if (values == null || values.length == 0)
        throw new IllegalArgumentException("No values");
    int max = values[0];
    for (int i = 1; i < values.length; i++)
        if (values[i] > max) max = values[i];
    return max;
}

Varargs внутри метода является обычным int[]. Инициализация нулём была бы ошибочной для набора только отрицательных чисел. Время O(n), дополнительная память O(1); порядок массива не меняется.

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

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

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

Подробнее