题解 | #牛牛的数组匹配#
牛牛的数组匹配
https://www.nowcoder.com/practice/3d3406f4a7eb4346b025cc592be5b875
#include <iostream> using namespace std; int a[2]; void array_fun(int sum,int n, int m,int *p) { int n_num=1,sum1=0,before_gap=10000; if(n>m) { a[0]=0; a[1]=m; return; } for(int i=0;i<m;i++) { n_num=1; while(n_num!=m+1) { sum1 = 0; for(int j=i;j<n_num;j++) { sum1 += *(p+j); } //a[i]=sum1; n_num++; if (abs(sum-sum1)<before_gap) { before_gap=abs(sum-sum1); a[0]=i; a[1]=n_num-1-i;//减去一个自增,减去一个多数因为,这里是代表总的个数 } } } return; } int main() { int n,m,n_num[10],m_num[10],sum=0,index; cin>>n>>m; for(int i=0;i<n;i++) { cin>>n_num[i]; sum+=n_num[i]; } for(int i=0;i<m;i++) { cin>>m_num[i]; } array_fun(sum,n,m,m_num); for(int i=a[0];i<a[0]+a[1];i++) { cout<<m_num[i]<<" "; } } // 64 位输出请用 printf("%lld")