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.