Индекс максимума последовательности
Вы решили задачу. Теперь можно сравнить подходы.
Запоминаем значение максимума и индекс его первого появления.
Авторский разбор для локальной версии на основе условия задачи. Это не выгрузка чужих посылок и не официальное решение исходного сайта.
Ваше принятое решение
Рекомендуемое решение: Один проход без хранения последовательности
Строгое сравнение сохраняет самый ранний индекс при повторениях максимума. Начальное значение 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) для сохранённой последовательности.
На что обратить внимание
- Нумерация начинается с нуля.
- Сравнение >= вместо > выберет последнее появление.
Рекомендация учитывает сложность и читаемость для этой задачи. Единственного самого быстрого решения для всех размеров входа и всех компьютеров может не быть.