Опишите алгоритм поиска разницы между двумя массивами: элементов, присутствующих только в первом и только во втором массиве. Укажите временную и пространственную сложность.

Вот пример функции на 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), а мы проходим по каждому элементу обоих массивов один раз.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку