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

Индекс максимума последовательности

Запоминаем значение максимума и индекс его первого появления.

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

Разберитесь, как повторять действие, пока выполняется условие, и вовремя остановить цикл.

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

Цикл while продолжается, пока условие истинно. Продумайте, какое значение меняется на каждом шаге и почему цикл когда-нибудь завершится. Проверяйте как обычный ввод, так и случай, когда тело цикла выполняется ноль раз.

Ключевая идея · Один проход без хранения последовательности

Строгое сравнение сохраняет самый ранний индекс при повторениях максимума. Начальное значение 0 подходит для натуральных чисел.

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

  • Нумерация начинается с нуля.
  • Сравнение >= вместо > выберет последнее появление.

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

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

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

Рекомендуемое решение: Один проход без хранения последовательности

Строгое сравнение сохраняет самый ранний индекс при повторениях максимума. Начальное значение 0 подходит для натуральных чисел.

best = 0
best_index = 0
index = 0
while True:
    x = int(input())
    if x == 0:
        break
    if x > best:
        best = x
        best_index = index
    index += 1
print(best_index)

Время: O(n). Память: O(1) числовых переменных.

Другой способ: Сохранение и обработка списка

max находит значение, index возвращает индекс его первого появления.

a = []
while True:
    x = int(input())
    if x == 0:
        break
    a.append(x)
print(a.index(max(a)))

Время: O(n). Память: O(n) для сохранённой последовательности.