समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो इंटीजर के दो क्रमबद्ध सरणियों को क्रमशः पहले और दूसरे तर्क के रूप में लेता है, arr1 और arr2।
फ़ंक्शन का तीसरा तर्क एक संख्या होगा, संख्या, और संख्या हमेशा दोनों सरणियों की लंबाई से कम होगी। हमारे फ़ंक्शन का कार्य पूर्णांकों के जोड़े (संख्या) को चुनना है।
प्रत्येक जोड़ी का पहला तत्व arr1 से और दूसरा arr2 से होना चाहिए। युग्मों को इस प्रकार चुना जाना चाहिए कि युग्मों का योग न्यूनतम संभव हो। अंत में हमारे फ़ंक्शन को इन सभी (संख्या) जोड़ियों की एक सरणी वापस करनी चाहिए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const arr1 = [1, 1, 2]; const arr2 = [1, 2, 3]; const num = 2;
तब आउटपुट होना चाहिए -
const output = [ [1, 1], [1, 1] ]
उदाहरण
इसके लिए कोड होगा -
const arr1 = [1, 1, 2]; const arr2 = [1, 2, 3]; const num = 2; const smallestPairs = (arr1 = [], arr2 = [], num = 1) => { const temp = Array(arr1.length).fill(0); const res = []; let compute = () => { let flag = Infinity; for (let i = 0; i < arr1.length; i++) { if (temp[i] < arr2.length && flag > (arr1[i] + arr2[temp[i]])) { flag = arr1[i] + arr2[temp[i]]; } } if (flag === Infinity || res.length >= num) { return; } else { for (let i = 0; i < arr1.length; i++) { if (temp[i] < arr2.length && flag == (arr1[i] + arr2[temp[i]])) { res.push(Array.of(arr1[i], arr2[temp[i]])); temp[i]++; } } compute(); } } compute(); return res.slice(0, num); }; console.log(smallestPairs(arr1, arr2, num));
आउटपुट
और कंसोल में आउटपुट होगा -
[ [ 1, 1 ], [ 1, 1 ] ]