forked from fishercoder1534/Leetcode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path_1013.java
38 lines (36 loc) · 1.1 KB
/
_1013.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package com.fishercoder.solutions;
public class _1013 {
public static class Solution1 {
public boolean canThreePartsEqualSum(int[] A) {
int sum = 0;
for (int i = 0; i < A.length; i++) {
sum += A[i];
}
if (sum % 3 != 0) {
return false;
}
int equalSum = sum / 3;
int left = 0;
int leftSum = 0;
while (left < A.length - 2 && leftSum != equalSum) {
leftSum += A[left++];
}
if (left > A.length - 2 || leftSum != equalSum) {
return false;
}
int right = A.length - 1;
int rightSum = 0;
while (right > left && rightSum != equalSum) {
rightSum += A[right--];
}
if (right < left || rightSum != equalSum) {
return false;
}
int middleSum = 0;
for (int i = left; i <= right; i++) {
middleSum += A[i];
}
return middleSum == equalSum;
}
}
}