কম্পিউটার

জাভাস্ক্রিপ্ট গ্রুপ অ্যারে - সংজ্ঞায়িত প্রান্তগুলি ব্যবহার করে ভ্রমণ করা যেতে পারে এমন সংখ্যার সেটগুলি খুঁজুন


নিম্নলিখিত ইনপুট এবং আউটপুট অ্যারে −

বিবেচনা করুন
const input = ["0:3", "1:3", "4:5", "5:6", "6:8"]; const output = [
   [0, 1, 3],
   [4, 5, 6, 8]
];

প্রতিটি সংখ্যাকে একটি গ্রাফে একটি নোড হিসাবে বিবেচনা করে এবং প্রতিটি জোড়া x:y নোডের মধ্যে একটি প্রান্ত হিসাবে x এবং y, আমাদেরকে সংজ্ঞায়িত প্রান্তগুলি ব্যবহার করে ভ্রমণ করা যেতে পারে এমন সংখ্যার সেটগুলি খুঁজে বের করতে হবে৷

অর্থাৎ, গ্রাফ তত্ত্বের ক্ষেত্রে, এই ধরনের একটি গ্রাফের মধ্যে স্বতন্ত্র সংযুক্ত উপাদানগুলি খুঁজুন৷ উদাহরণস্বরূপ, উপরের অ্যারেগুলিতে, 4 থেকে 0 পর্যন্ত ভ্রমণ করার কোনও উপায় নেই তাই তারা বিভিন্ন গ্রুপে রয়েছে, তবে ভ্রমণ করার একটি উপায় রয়েছে 1 থেকে 0 পর্যন্ত (3 এর মাধ্যমে) তাই তারা একই গোষ্ঠীতে রয়েছে৷" কাঙ্খিত আউটপুট পুনরাবৃত্তি করা হল ট্রান্সভার্সেবল নোডগুলির একটি গ্রুপিং, একটি সম্ভাব্য র্যান্ডম ইনপুট সেটের উপর ভিত্তি করে৷

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রদত্ত ইনপুট থেকে পছন্দসই আউটপুট তৈরি করে।

উদাহরণ

const input = ["0:3", "1:3", "4:5", "5:6", "6:8"];
const groupRange = (arr = []) => {
   const res = [[]];
   let count = 0;
   const a = [0];
   let array = arr.map(el => el.split(':').sort((a, b) => a - b)). sort((a, b) => a[0] - b[0]); array.forEach(el => {
      if (el[0] > a[a.length - 1]) {
         res.push(el);
          a.push(el[1]);
         count++;
      } else {
         res[count] = res[count].concat(el);
         a[a.length - 1] = el[1];
      };
   });
   return res.map(el => [...new Set(el)].sort((a, b) => a - b));
}
console.log(groupRange(input));

আউটপুট

এবং কনসোলে আউটপুট হবে −

[ [ '0', '1', '3' ], [ '4', '5', '6', '8' ] ]

  1. জাভাস্ক্রিপ্ট ব্যবহার করে স্ট্রিং সংখ্যার সমষ্টি

  2. জাভাস্ক্রিপ্ট ব্যবহার করে কিছু ওজনের মান ধারণ করে এমন একটি অ্যারে সাজানো

  3. জাভাস্ক্রিপ্ট ব্যবহার করে পরপর সংখ্যা আছে এমন একটি অ্যারেতে জোড়ার সংখ্যা

  4. জাভাস্ক্রিপ্ট ব্যবহার করে অ্যারে নম্বর খুঁজে বের করা যা অ্যারেতে কোনো ইতিবাচক বা ঋণাত্মক সংখ্যার মিল নেই