所以要从题目出发,优化代码 思路是:
1、前缀和,算出来累加和。
2、通过tot*2==sum,判断是不是有相等的值。
这个是数学上的优化。
原错误的代码思路
include <bits/stdc++.h>
using namespace std;
int n;
int main( )
{
cin >> n;
for (int i=1;i<=n;i++)
{
int a, b[10005];
int po=0;
cin >> a;
for (int j=1;j<=a;j++)
{
cin >> b[j];
}
for (int j=1;j<=a;j++)
{
int sum=0, num=0;
for (int k=1;k<=j;k++)
{
sum+=b[k];
}
for (int k=j+1;k<=a;k++)
{
num+=b[k];
}
if(sum==num) po=1;
}
if (po) cout << "Yes" << endl;
else cout << "No" << endl;
}
return 0;
}