Вот пример функции на JavaScript, которая возвращает симметрическую разность двух массивов:
Опишите алгоритм поиска разницы между двумя массивами: элементов, присутствующих только в первом и только во втором массиве. Укажите временную и пространственную сложность.
Вот пример функции на JavaScript, которая возвращает симметрическую разность двух массивов:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Вот пример функции на JavaScript, которая возвращает симметрическую разность двух массивов:
function symmetricDifference(arr1, arr2) {
const set1 = new Set(arr1);
const set2 = new Set(arr2);
const result = [];
for (const item of set1) {
if (!set2.has(item)) {
result.push(item);
}
}
for (const item of set2) {
if (!set1.has(item)) {
result.push(item);
}
}
return result;
}
Сложность алгоритма — O(n + m), где n и m — длины входных массивов. Это связано с тем, что операции добавления и проверки в Set выполняются за амортизированное O(1), а мы проходим по каждому элементу обоих массивов один раз.