这是我做过的一个题,我把它分享给你们:
这是原文链接:https://leetcode-cn.com/problems/partition-array-into-three-parts-with-equal-sum/
如果感觉我做的还行的话,记得点赞。
解题思路:
他让分成三部分,且每一部分大小相等,那不就意味着是,每一部分都等于总大小的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;
}
}
我今天的分享就到这里,谢谢观看。