题解 | #牛牛的数组匹配#
牛牛的数组匹配
https://www.nowcoder.com/practice/3d3406f4a7eb4346b025cc592be5b875
#include <iostream> #include <cmath> using namespace std; int a1[100],b1[100],sum1=0,sum2=0; // sum1 代表数组a的和 int sum(int i,int j) { int m=0; for(int k=i;k<=j;k++) { m+=b1[k]; } return m; } int main() { int a, b; cin>>a>>b; for(int i=0;i<a;i++) { cin>>a1[i]; sum1+=a1[i]; } for(int i=0;i<b;i++) { cin>>b1[i]; sum2+=b1[i]; } int min = sum1+sum2; int m1=0,n1=0; //min代表b-a的最小值 for(int i=0;i<b;i++) { for(int j=0;j<b;j++) { int sum2=0; sum2=sum(i,j); if(abs(sum2-sum1)<min) //我要的是素描sum2-sum1的绝对值最小。这个min如果初始化为sum2不一定大于sum2-sum1的绝对值。 { min = abs(sum2-sum1); m1 = i; n1 = j; } } } for(int i=m1;i<=n1;i++) { cout<<b1[i]<<" "; } } // 64 位输出请用 printf("%lld")