Sobes.tech
Middle

JavaScript görevi: iki dizi alan ve sadece birinde bulunan öğelerden oluşan bir dizi döndüren bir fonksiyon yazın (simetrik fark). Algoritmanın karmaşıklığını değerlendirin.

sobes.tech yapay zeka

AI'dan gelen yanıt

İşte iki dizinin simetrik farkını döndüren JavaScript'te bir fonksiyon örneği:

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

Algoritmanın karmaşıklığı — O(n + m), burada n ve m giriş dizilerinin uzunluklarıdır. Bu, Set'e ekleme ve kontrol işlemlerinin amortize edilmiş O(1) sürede gerçekleştiği ve her iki dizinin her bir öğesini bir kez geçtiğimiz için geçerlidir.