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) დროში, და ჩვენ ვატარებთ თითოეულ ელემენტს ორივე მასივში ერთხელ.