Sobes.tech
Middle

Tarefa de JavaScript: escrever uma função que aceite dois arrays e retorne um array com os elementos presentes apenas em um dos arrays (diferença simétrica). Avaliar a complexidade do algoritmo.

sobes.tech IA

Resposta da IA

Aqui está um exemplo de uma função em JavaScript que retorna a diferença simétrica de dois arrays:

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;
}

A complexidade do algoritmo é — O(n + m), onde n e m são os comprimentos dos arrays de entrada. Isto deve-se ao fato de que as operações de adição e verificação no Set são feitas em O(1) amortizado, e percorremos cada elemento de ambos os arrays uma vez.