समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो दो क्रमबद्ध पूर्णांक सरणियों को पहले और दूसरे आर्गुमेंट के रूप में लेता है, arr1 और arr2।
फ़ंक्शन का तीसरा आर्गुमेंट एक संख्या num होगी, और num हमेशा दोनों सरणियों की लंबाई से कम होगी। हमारे फ़ंक्शन का कार्य num पूर्णांक जोड़े चुनना है।
प्रत्येक जोड़े का पहला तत्व arr1 से और दूसरा arr2 से होना चाहिए। जोड़ों को इस तरह चुना जाना चाहिए कि उनके योग सबसे छोटे संभव हों। अंत में हमारा फ़ंक्शन इन सभी num जोड़ों की एक सरणी वापस करना चाहिए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
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 ] ]