Используйте Set для проверки принадлежности первому массиву и удаляйте найденное значение после добавления в результат, исключая повторы.
LeetCode #349 — Даны два массива целых чисел. Верните их пересечение: уникальные элементы, которые присутствуют в обоих массивах. Порядок результата не важен.
Используйте 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). Порядок соответствует первым подходящим появлениям во втором массиве.