整数对最小和
描述
给定两个整数数组 array1、array2,数组元素按升序排列
假设从 array1、array2 中分别取出一个元素可构成一对元素,现在需要取出 k对元素
并对取出的所有元素求和,计算和的最小值
例子1:
输入
3 1 1 2
3 1 2 3
2
输出
4
说明:用例中需要取两个元素,
取第一个数组第0个元素与第二个数组第0个元素组成一个元素 [1,1]
取第一个数组第1个元素与第二个数组第0个元素组成一个元素 [1,1]
求和为1+1+1+1=4 ,满足要求最小
法一
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int[] arr1 = getArray(sc.nextLine());
int[] arr2 = getArray(sc.nextLine());
int target = sc.nextInt();
List<Integer> list = new ArrayList<>();
for (int i : arr1) {
for (int j : arr2) {
list.add(i + j);
}
}
Integer[] res = new Integer[list.size()];
list.toArray(res);
Arrays.sort(res);
int sum = 0;
for (int i = 0 ; i < target ; i++) {
sum += res[i];
}
System.out.println(sum);
}
}
public static int[] getArray(String str) {
String[] strs = str.split("\\s+");
int n = Integer.parseInt(strs[0]);
int[] arr = new int[n];
for (int i = 1 ; i < strs.length ; i++) {
arr[i - 1] = Integer.parseInt(strs[i]);
}
return arr;
}
}