हमें एक JavaScript फ़ंक्शन लिखना है जो पहले तर्क के रूप में संख्याओं की एक सरणी और दूसरे तर्क के रूप में एक संख्या लेता है। फ़ंक्शन को ऐसे सभी ट्रिपलेट्स (सन्निकट या गैर-सन्निकट) की एक सरणी तैयार करके वापस करनी चाहिए, जो दूसरे तर्क द्वारा निर्दिष्ट संख्या तक जुड़ते हैं।
उदाहरण के लिए -
यदि इनपुट सरणी और संख्या हैं -
const arr = [4, 2, 0, 1, 2, 6, 8, 3, 2, 5];
const num = 8;
तो आउटपुट सरणी होनी चाहिए -
const output = [ [ 2, 2, 4 ], [ 1, 3, 4 ], [ 0, 2, 6 ], [ 1, 2, 5 ] ];
उदाहरण
निम्नलिखित कोड देखें:
const arr = [4, 2, 0, 1, 2, 6, 8, 3, 2, 5];
const num = 8;
const tripletSum = (arr, num) => {
if (arr.length === 3) {
if (arr[0] + arr[1] + arr[2] === 0) {
return [[arr[0], arr[1], arr[2]]];
};
};
const results = [];
const hashMap = {};
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
for (var k = j + 1; k < arr.length; k++) {
if (arr[i] + arr[j] + arr[k] === num) {
if (!hashMap[arr[i] * arr[j] * arr[k]]) {
results.push([arr[i], arr[j], arr[k]]);
results[results.length - 1].sort();
hashMap[arr[i] * arr[j] * arr[k]] = true;
}
}
}
}
}
return results;
};
console.log(tripletSum(arr, num));
आउटपुट
कंसोल आउटपुट निम्नलिखित है -
[ [ 2, 2, 4 ], [ 1, 3, 4 ], [ 0, 2, 6 ], [ 1, 2, 5 ] ]