Sobes.tech
Middle

Вазифаи JavaScript: навиштани функсияе, ки ду массивро қабул мекунад ва массиви унсурҳоро бармегардонад, ки танҳо дар яке аз массивҳо мавҷуданд (фарқи симметрӣ). Мушаххасоти мураккабии алгоритмро арзёбӣ кунед.

sobes.tech AI

Ҷавоб аз AI

Масалан, дар 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) иҷро мешаванд, ва мо ҳар як унсури ҳар ду массивро як маротиба мегузаронем.