निम्नलिखित इनपुट और आउटपुट सरणियों पर विचार करें -
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' ] ]