题目要求
解题思路
分别输入的两个数组一个从小到大排序,一个从大到小排序,可以符合题目要求 ,本来还想着找将数组倒置的函数,后来一想,倒着乘不就好了嘛,真是学傻了……
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int n = in.nextInt();
for (int i = 0; i < n; i++) {
int m = in.nextInt();
int[] a = new int[m];
int[] b = new int[m];
int sum = 0;
// 分别输入两个数组
for (int j = 0; j < m; j++) {
a[j] = in.nextInt();
}
for (int j = 0; j < m; j++) {
b[j] = in.nextInt();
}
Arrays.sort(a);
Arrays.sort(b);
for (int j = 0; j < m; j++) {
sum += a[j] * b[m-j-1];
}
System.out.println(sum);
}
}
}