算法题454四数相加ll ,在初次提交代码的时候有组测试用例没有通过
正确输出6,下面代码的输出是4。
var fourSumCount = function (nums1, nums2, nums3, nums4) {
// 使用哈希map保存前两个数组中元素和及其元素和出现次数
let map = new Map();
// 定义统计值count把map中key对应的value统计出来
let count = 0;
// 遍历前两个数组
for (let i = 0; i < nums1.length; i++) {
for (let i = 0; i < nums2.length; i++) {
const sum = nums1[i] + nums2[i];
// 将前两个数组元素之和加入map中,和为key,出现次数为value
map.set(sum, (map.get(sum)) || 0 + 1)
}
}
// 遍历后两个数组
for (let i = 0; i < nums3.length; i++) {
for (let i = 0; i < nums4.length; i++) {
let target = 0 - (nums3[i] + nums4[i]);
// 判断map中是否有后两个数组元素和的匹配值,使用计数器统计
if (map.has(target)) {
count += (map.get(target) || 0)
}
}
}
return count;
};
问题出在哪里