Sobes.tech
Middle

JavaScript-opdracht: schrijf een functie die twee arrays accepteert en een array retourneert met elementen die alleen in een van de arrays voorkomen (symmetrisch verschil). Evalueer de complexiteit van het algoritme.

sobes.tech AI

Antwoord van AI

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