Middle
Úloha v JavaScripte: napíšte funkciu, ktorá prijíma dva pola a vracia pole prvkov, ktoré sú prítomné iba v jednom z nich (súmerná rozdielnosť). Vyhodnoťte zložitosť algoritmu.
sobes.tech AI
Odpoveď od AI
Tu je príklad funkcie v JavaScripte, ktorá vracia symetrický rozdiel dvoch polí:
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;
}
Zložitosť algoritmu je — O(n + m), kde n a m sú dĺžky vstupných polí. To je spôsobené tým, že operácie pridania a kontroly v Set sa vykonávajú v amortizovanom čase O(1), a prechádzame každý prvok oboch polí raz.