Вопрос пользователя:

При путешествии по планете марсоход постоянно замеряет высоту рельефа и сохраняет результаты замеров в массив. Одна из задач марсохода — поиск «правильных гор». «Правильной» считается та гора, у которой на пути от подножия до вершины высота постоянно растёт, а на пути от вершины к подножию — постоянно уменьшается. Если у горы есть несколько вершин или в каком-то месте встречается горизонтальный участок — это «неправильная гора». Напишите функцию valid_mountain_array, которая будет принимать на вход массив с высотами и возвращать True или False в зависимости от того, «правильная» это гора или нет.

Ответ нейросети:

def valid_mountain_array(arr):
    n = len(arr)
    
    if n < 3:
        return False
    
    i = 0
    
    # Подъем
    while i+1 < n and arr[i] < arr[i+1]:
        i += 1
    
    # Плато или спуск
    if i == 0 or i == n-1:
        return False
    
    # Спуск
    while i+1 < n and arr[i] > arr[i+1]:
        i += 1
    
    return i == n-1

# Пример использования
arr = [1, 2, 3, 4, 5, 4, 3, 2, 1]
print(valid_mountain_array(arr))  # Вывод: True

arr = [1, 2, 3, 4, 5, 4, 3, 2, 1, 0]
print(valid_mountain_array(arr))  # Вывод: False

Обратите внимание: ответы, предоставляемые искусственным интеллектом, могут не всегда быть точными. Не рассчитывайте на них в критически важных областях, таких как медицина, юриспруденция, финансы или в вопросах, связанных с безопасностью. Для важных решений всегда обращайтесь к квалифицированным специалистам. Администрация сайта не несет ответственности за контент, сгенерированный автоматически.

Напишите нам, если в вопросе есть ваши персональные данные ([email protected])

Все вопросы

Последние вопросы: