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

Количество различных элементов

В отсортированном списке новое значение начинается на смене соседей.

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

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

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

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

Ключевая идея · Подсчёт переходов

Каждая группа равных значений даёт ровно один новый элемент.

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

  • Сравнивайте значения, а не величину разности между соседями.

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

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

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

Рекомендуемое решение: Подсчёт переходов

Каждая группа равных значений даёт ровно один новый элемент.

a = list(map(int, input().split()))
print((1 if a else 0) + sum(a[i] != a[i - 1] for i in range(1, len(a))))

Время: O(n). Память: O(n) включая ввод.

Другой способ: Множество

Множество удаляет повторы и работает даже без сортировки.

a = list(map(int, input().split()))
print(len(set(a)))

Время: O(n) в среднем. Память: O(n).