নিম্নলিখিত ইনপুট এবং আউটপুট অ্যারে −
বিবেচনা করুন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' ] ]