class Solution {
public boolean canThreePartsEqualSum(int[] arr) {
int n = 3;
if (arr.length <= 0) {
return false;
}
if (isThreeMultiple(arr, n)) {
int average = getAverage(arr, n);
return isDivideThreePart(arr, average, n);
}else {
return false;
}
}
/**
* 判断是否是n的倍数
*/
public boolean isThreeMultiple(int[] arr, int n) {
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
if (sum%n == 0) {
return true;
}else {
return false;
}
}
/**
* 获取平均值
*/
public int getAverage(int[] arr, int n) {
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum/n;
}
/**
* 判断数组是否可以分为n部分
*/
public boolean isDivideThreePart(int[] arr, int average, int n) {
int flag = 0;
int sum = 0;
for(int i = 0; i < arr.length; i++) {
sum += arr[i];
if (sum == average) {
flag++;
sum = 0;
}
}
return flag >= n;
}
}
Leetcode之N-Sum问题
猜你喜欢
转载自blog.csdn.net/qq_37469055/article/details/115362281
今日推荐
周排行