【数组】1013. 将数组分成和相等的三个部分
题目:

解答:
(1)首先计算数组 A 中所有数字总和 sum;
(2)遍历数组 A 查找和为 sum / 3的子数组个数;
(3)如果找到了三个这样的子数组则返回 true
(4)找不到三个就返回 false;
1 class Solution { 2 public: 3 bool canThreePartsEqualSum(vector<int>& A) 4 { 5 int sum = accumulate(A.begin(), A.end(), 0); 6 7 if (sum % 3 != 0) 8 { 9 return false; 10 } 11 int count = 0; 12 int subSum = 0; 13 14 for (int i = 0; i < A.size(); i ++) 15 { 16 subSum += A[i]; 17 if (subSum == sum / 3) 18 { 19 count ++; 20 subSum = 0; 21 } 22 if (count == 3) 23 { 24 return true; 25 } 26 } 27 return false; 28 } 29 };

浙公网安备 33010602011771号