Мини-урок · перед практикой

Больше своих соседей

Рассматриваем только внутренние элементы списка.

Как к ней подойти

Потренируйтесь хранить последовательность значений и обращаться к нужным элементам списка.

Коротко о теме

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

Ключевая идея · Сравнение по индексам

У каждого кандидата есть левый и правый сосед.

Проверьте перед запуском

  • Сравнение строгое: равный сосед не подходит.

Сравните свой подход

Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.

Ваше принятое решение

Рекомендуемое решение: Сравнение по индексам

У каждого кандидата есть левый и правый сосед.

a = list(map(int, input().split()))
count = 0
for i in range(1, len(a) - 1):
    if a[i] > a[i - 1] and a[i] > a[i + 1]:
        count += 1
print(count)

Время: O(n). Память: O(n).

Другой способ: Скользящее окно

Вместо индексов переносим окно из трёх соседних чисел. split хранит токены ввода.

a = iter(map(int, input().split()))
left = next(a, None)
center = next(a, None)
count = 0
for right in a:
    if left < center > right:
        count += 1
    left, center = center, right
print(count)

Время: O(n). Память: O(n) из-за split; окно O(1).