Leetcode 150 | День 4: Majority Element

Leetcode 169 предлагает найти элемент большинства в массиве. Элемент большинства встречается более n / 2 раз. Мы предполагаем, что он всегда существует.

Эту задачу можно решить двумя способами.

Подход 1: Метод с использованием Map

Этот метод использует Map для подсчета того, сколько раз встречается каждое число.

Сложность:

Подход 2: Алгоритм голосования Бойера — Мура

Это оптимизированный способ решения задачи с использованием константной памяти.

Представьте, что числа — это противоборствующие команды. Каждый раз, когда число встречается с другим, отличным от него числом, они «аннулируют» друг друга. Поскольку элемент большинства встречается более половины раз, он всегда останется последним.

Как это работает:

Сложность:

Почему это важно:

Оба метода имеют временную сложность O(n). Однако второй подход использует гораздо меньше памяти. Ему не требуется Map. Это делает его более эффективным для больших наборов данных.

Источник: https://dev.to/afuji/leetcode-150-day-4-majority-element-naive-vs-optimized-eo6