समस्या
जावास्क्रिप्ट फ़ंक्शन जो दो सरणियों में लेता है, arr1 और arr2 अंतराल के जो जोड़ीदार असंबद्ध और क्रमबद्ध क्रम में हैं।
एक बंद अंतराल [a, b] (a <=b के साथ) वास्तविक संख्या x के सेट को <=x <=b के साथ दर्शाता है।
दो बंद अंतरालों का प्रतिच्छेदन वास्तविक संख्याओं का एक समूह है जो या तो खाली होता है, या एक बंद अंतराल के रूप में दर्शाया जा सकता है। उदाहरण के लिए, [1, 3] और [2, 4] का प्रतिच्छेदन [2, 3] है।) हमारा कार्य इन दो अंतराल सरणियों के प्रतिच्छेदन को वापस करना है।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const arr1 = [[0,2],[5,10],[13,23],[24,25]]; const arr2 = [[1,5],[8,12],[15,24],[25,26]];
तब आउटपुट होना चाहिए -
const output = [[1,2],[5,5],[8,10],[15,23],[24,24],[25,25]];
उदाहरण
इसके लिए कोड होगा -
const arr1 = [[0,2],[5,10],[13,23],[24,25]]; const arr2 = [[1,5],[8,12],[15,24],[25,26]]; const findIntersection = function (A, B) { const res = [] let i = 0 let j = 0 while (i < A.length && j < B.length) { const [a, b] = A[i] const [c, d] = B[j] const lo = Math.max(a, c) const hi = Math.min(b, d) if (lo <= hi) { res.push([Math.max(a, c), Math.min(b, d)]) } if (b < d) { i++ } else { j++ } } return res }; console.log(findIntersection(arr1, arr2));
आउटपुट
और कंसोल में आउटपुट होगा -
[ [ 1, 2 ], [ 5, 5 ], [ 8, 10 ], [ 15, 23 ], [ 24, 24 ], [ 25, 25 ] ]