class Solution {
public:
bool canThreePartsEqualSum(vector<int>& arr) {
int sum = accumulate(arr.begin(), arr.end(), 0);
if (sum % 3 != 0) {
return false;
}
int avg = sum / 3;
int pos_1 = -1;
for (int i = 0; i < arr.size(); i++) {
avg -= arr[i];
if (avg == 0) {
pos_1 = i;
break;
}
}
avg = sum / 3;
int pos_2 = pos_1;
for (int i = pos_1 + 1; i < arr.size(); i++) {
avg -= arr[i];
if (avg == 0) {
pos_2 = i;
break;
}
}
if (pos_2 < arr.size() - 1 && pos_2 != pos_1) {
return true;
} else {
return false;
}
}
};
LeetCode #1013 将数组分成和相等的三个部分
最新推荐文章于 2024-07-25 19:34:38 发布