JavaScript 中具有所需总和的三元组
我们要求编写一个 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 ] ]
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP