原文链接:https://leetcode-cn.com/problems/partition-array-into-three-parts-with-equal-sum/
题目:
思路分析:这道题是给定一个整数数组A,如果我们能将其划分为三个和相等的非空部分时才返回true,否则返回false。
1.首先我们将数组中所有元素进行求和。
2.然后我们定义一个变量key,让它等于和的1/3,再定义一个变量group。
3.然后对数组元素进行遍历,每次key减去元素,直到key等于0,让group自加,然后重新将key初始化为和的1/3。
4.最后看group是否等于3,如果等于3则进行返回。
源代码:
class Solution {
public boolean canThreePartsEqualSum(int[] A) {
int sum = 0;
for(int num : A){
sum+=num;
}
int key = sum / 3;
int group = 0;
for(int i = 0; i < A.length;i++){
key-=A[i];
if(key == 0){
group++;
key = sum / 3;
}
}
return group == 3;
}
}