Middle
JavaScript feladat: írjon egy függvényt, amely két tömböt fogad, és egy olyan tömböt ad vissza, amely csak az egyik tömbben szereplő elemeket tartalmazza (szimmetrikus különbség). Értékelje az algoritmus összetettségét.
sobes.tech MI
Válasz az MI-től
Íme egy példa egy JavaScript függvényre, amely két tömb szimmetrikus különbségét adja vissza:
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;
}
Az algoritmus összetettsége — O(n + m), ahol n és m a bemeneti tömbök hosszúsága. Ez azért van, mert a Set-be való hozzáadás és ellenőrzés műveletek amortizált O(1) időben történnek, és mindkét tömb összes elemén egyszer végigmegyünk.