题解 | 牛牛的数组匹配
牛牛的数组匹配
https://www.nowcoder.com/practice/3d3406f4a7eb4346b025cc592be5b875
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
int main()
{
int n, m;
scanf("%d %d", &n, &m);
int a[100] = {0};
int b[100] = {0};
int prefix_b[100] = {0};
int sum_a = 0;
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
sum_a += a[i];
}
int sum_prefix_b = 0;
for (int i = 0; i < m; i++)
{
scanf("%d", &b[i]);
sum_prefix_b += b[i];
prefix_b[i] = sum_prefix_b;
}
int min_gap = INT_MAX;
int k = 0, l = 0;
for (int i = 0; i < m; i++)
{
for (int j = i; j < m; j++)
{
int current_sum;
if (i == 0)
{
current_sum = prefix_b[j];
}
else
{
current_sum = prefix_b[j] - prefix_b[i - 1];
}
int gap = abs(sum_a - current_sum);
if (gap < min_gap || (gap == min_gap && i < k))
{
min_gap = gap;
k = i;
l = j;
}
}
}
for (int i = k; i <= l; i++)
{
printf("%d ", b[i]);
}
return 0;
}
文远知行公司福利 522人发布