快看!!!!!是题解!!!!!
2025-09-25 16:43:49
发布于:浙江
7阅读
0回复
0点赞
思路
首先,为了判断数列是否是平衡序列,我们定义函数judgeBalanceArray。
函数中写道:将[1, n)中的i全部都尝试,其中firstToI为数列中第[0, i)项相加,iPlusToN为[i, n)相加,
然后判断这两个变量的相等性。如果相等:就直接返回true,不作过多地判断,否则就一直尝试完所有的i。
若真的没有任何i满足要求,返回false。
最后,主函数按照题目要求输入,然后带入judgeBalanceArray。如果返回true,输出Yes,否则输出No 。
#include <iostream>
#include <vector>
using namespace std;
bool judgeBalanceArray(int n, vector<int> a) {
for (int i = 1; i < n; i++) {
int firstToI = 0, iPlus1ToN = 0;
for (int j = 0; j < i; j++) {
firstToI += a[j];
}
for (int j = i; j < n; j++) {
iPlus1ToN += a[j];
}
if (firstToI == iPlus1ToN) {
return true;
}
}
return false;
}
int main() {
int t;
cin >> t;
for (int i = 0; i < t; i++) {
int size;
cin >> size;
vector<int> v(size);
for (int i = 0; i < size; i++) {
cin >> v[i];
}
if (judgeBalanceArray(size, v)) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
}
return 0;
}
感谢阅读,如有错误,请及时联系!
这里空空如也
有帮助,赞一个