Sobes.tech
Middle

Exercice en JavaScript : écrire une fonction qui prend deux tableaux et retourne un tableau contenant les éléments présents uniquement dans l'un des deux tableaux (différence symétrique). Évaluer la complexité de l'algorithme.

sobes.tech IA

Réponse de l'IA

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