题解 | #牛牛的数组匹配#
牛牛的数组匹配
https://www.nowcoder.com/practice/3d3406f4a7eb4346b025cc592be5b875
import java.util.Arrays;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
int aLength = in.nextInt();
int bLength = in.nextInt();
int[] a = new int[aLength];
int[] b = new int[bLength];
int sumA = 0;
for (int i = 0; i < aLength; i++) {
sumA += in.nextInt();
}
for (int i = 0; i < bLength; i++) {
b[i] = in.nextInt();
}
// System.out.println(Arrays.toString(b));
// System.out.println(sumA);
int beginAns = 0, endAns = 0;
int close = sumA;
for (int begin = 0; begin < bLength; begin++) {
for (int end = 0; end < bLength; end++) {
int sumTemp = getSubSum(b, begin, end);
// System.out.println("=================");
// System.out.println(sumTemp);
int span = Math.abs(sumA - sumTemp);
if (close > span) {
close = span;
beginAns = begin;
endAns = end;
}
}
}
for (int i = beginAns; i <= endAns; i++) {
System.out.print(b[i] + " ");
}
}
public static int getSubSum(int[] arr, int begin, int end) {
int sum = 0;
for (int i = begin; i <= end; i++) {
sum += arr[i];
}
return sum;
}
}

