Количество элементов, которые больше предыдущего
Вы решили задачу. Теперь можно сравнить подходы.
Сравниваем каждый элемент со своим непосредственным предшественником.
Авторский разбор для локальной версии на основе условия задачи. Это не выгрузка чужих посылок и не официальное решение исходного сайта.
Ваше принятое решение
Рекомендуемое решение: Один проход без хранения последовательности
Первый элемент не имеет предшественника, поэтому начинаем сравнения со второго.
previous = int(input())
count = 0
if previous != 0:
while True:
current = int(input())
if current == 0:
break
if current > previous:
count += 1
previous = current
print(count)
Время: O(n). Память: O(1) числовых переменных.
Другой способ: Сохранение и обработка списка
Каждое истинное сравнение в генераторе даёт единицу.
a = []
while True:
x = int(input())
if x == 0:
break
a.append(x)
print(sum(a[i] > a[i - 1] for i in range(1, len(a))))
Время: O(n). Память: O(n) для сохранённой последовательности.
На что обратить внимание
- Равные элементы не подходят.
- Предыдущее значение обновляется после любого сравнения.
Рекомендация учитывает сложность и читаемость для этой задачи. Единственного самого быстрого решения для всех размеров входа и всех компьютеров может не быть.