Life · 10 / 12

Последняя версия без перестановки

Объединить дубликаты, сохранив порядок первого появления

Лёгкаяcollectionsmapordering

Приходит список Note(id, text). Верни по одной заметке на ID: содержимое берётся из последнего вхождения, порядок — по первому появлению ID. Входной список не меняй.

Проверки для ручного сравнения:

  • [1:a, 2:b, 1:c] → [1:c, 2:b].
  • [2:a, 1:b, 2:c, 3:d] → [2:c, 1:b, 3:d].
  • Пустой вход → пустой результат; разные ID с одинаковым text остаются разными записями.

Ожидается один проход и O(k) дополнительной памяти для k разных ID. Оценка O(n) по времени предполагает обычную среднюю стоимость hash-операций. Не сортируй результат по ID.

Адаптировано из задач на удаление дубликатов в draft/lifeconding.md; требование последней версии добавлено для проверки понимания порядка.

Твой код
Решение