1013.将数组分成和相等的三个部分

原文链接: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;
    }
}
发布了26 篇原创文章 · 获赞 25 · 访问量 5400

猜你喜欢

转载自blog.csdn.net/Agonyq/article/details/104441596