题目
整数对最小和
【输入描述】
输入两行整形数组array1,array2,每行首个数字为数组大小size(0<size<=100);
0<array1[i]<=1000;
0<array2[i]<=1000,
接下来一行为正整数k;
0<k<=array1.size()*array2.size();
【输出描述】
输出满足要求的的最小和。
【示例】
【输入】
3 1 1 4
3 1 2 3
2
【输出】
4
【解释】
array1[0]和array2[0]是一对,array1[1]与array2[0]是一对
所以1+1+1+1=4
思路:
构造新数组存储另外两数组两两元素组队之和,之后对新数组由小到大升序排列,输出前k项之和即可!
JScript代码
let nums1=readline().map(Number);
let nums2=readline().map(Number);
let k=parseInt(readline());
let arr1 = nums1.sort((a, b) => a - b);
let arr2 = nums2.sort((a, b) => a - b);
let n1 = arr1.length;
let n2 = arr2.length;
let n = n1 + n2;
let res = [];
for (let i = 0; i < n1; i++) {
for (let j = 0; j < n2; j++) {
res.push(arr1[i] + arr2[j]);
}
}
res.sort();
let sum = 0;
for (let i = 0; i < k; i++) {
sum += res[i];
}
console.log(sum);