LeetCode #349 — Даны два массива целых чисел. Верните их пересечение: уникальные элементы, которые присутствуют в обоих массивах. Порядок результата не важен.

Используйте Set для проверки принадлежности первому массиву и удаляйте найденное значение после добавления в результат, исключая повторы.

Короткий ответ

Что ответить на собеседовании

Используйте Set для проверки принадлежности первому массиву и удаляйте найденное значение после добавления в результат, исключая повторы.

Подробный разбор

Ответ с пояснениями

Используйте Set для проверки принадлежности первому массиву и удаляйте найденное значение после добавления в результат, исключая повторы.

function intersection(a, b) {
  const available = new Set(a);
  const result = [];
  for (const value of b) {
    if (available.delete(value)) result.push(value);
  }
  return result;
}

Для [1,2,2,3] и [2,2,4] результат [2]. Ожидаемое время O(n + m) при обычной хеш-реализации, дополнительная память O(n). Порядок соответствует первым подходящим появлениям во втором массиве.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее