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

这是我做过的一个题,我把它分享给你们:

这是原文链接:https://leetcode-cn.com/problems/partition-array-into-three-parts-with-equal-sum/

如果感觉我做的还行的话,记得点赞。

LeetCode-1013. 将数组分成和相等的三个部分_第1张图片

解题思路:

他让分成三部分,且每一部分大小相等,那不就意味着是,每一部分都等于总大小的1/3,如果数字加下去不等于这个值就不是,等于就是,这个题就解决了

这个题分为下面几步

1.定义个全局变量,用来记录一共几组,然后把总数算出来/3

2.从数组开头开始,第一个数依次向后加,知道加到总数的1/3,记录组数++

3.判断是否到最后共三组,如果是输出true

这道题就解决完成了,下面是我的网页的代码,主函数我就不写了,要验证的话自己编个主函数验证下:

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;
    }
}

我今天的分享就到这里,谢谢观看。

你可能感兴趣的:(Leetcode习题总结,线性代数,算法,动态规划,java,几何学)