Определение монотонности числового массива

Проверяйте одновременно две возможности: неубывание и невозрастание. Если встретились и рост, и падение, массив не монотонен; равные соседние значения ничего не нарушают.

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

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

Проверяйте одновременно две возможности: неубывание и невозрастание. Если встретились и рост, и падение, массив не монотонен; равные соседние значения ничего не нарушают.

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

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

Условие

Дан массив целых чисел. Требуется реализовать функцию, которая возвращает true, если массив строго либо нестрого монотонно возрастает, либо строго либо нестрого монотонно убывает. В остальных случаях функция должна вернуть false.

def is_monotonic(nums: List[int]) -> bool:
    # реализуйте проверку монотонности
    pass
public static boolean isMonotonic(int[] numbers) {
    // реализуйте проверку монотонности
    return false;
}
bool isMonotonic(const std::vector<int>& arr) {
    // реализуйте проверку монотонности
    return false;
}

Ответ

Проверяйте одновременно две возможности: неубывание и невозрастание. Если встретились и рост, и падение, массив не монотонен; равные соседние значения ничего не нарушают.

public static boolean isMonotonic(int[] numbers) {
    boolean nonDecreasing = true, nonIncreasing = true;
    for (int i = 1; i < numbers.length; i++) {
        if (numbers[i] < numbers[i - 1]) nonDecreasing = false;
        if (numbers[i] > numbers[i - 1]) nonIncreasing = false;
        if (!nonDecreasing && !nonIncreasing) return false;
    }
    return true;
}

Выбран Java-вариант, в Python/C++ алгоритм тот же. Пустой массив и один элемент считаются монотонными. Время O(n), память O(1). Сравнивайте числа напрямую, не через их разность: вычитание крайних int может переполниться.

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

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

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

Подробнее