@@ -25,23 +25,24 @@ where we define that subarray (L, R) represents a slice of the original array st
25
25
*/
26
26
public class _548 {
27
27
28
- public boolean splitArray_O_N_3 (int [] nums ) {//TODO: this one is failed by test4, probably some index wrong
28
+ public boolean splitArray_O_N_3 (int [] nums ) {
29
+ //TODO: this one is failed by test4, probably some index wrong
29
30
if (nums == null || nums .length == 0 ) return false ;
30
- long [] previousSums = new long [nums .length + 1 ];
31
+ long [] previousSums = new long [nums .length + 1 ];
31
32
for (int i = 1 ; i <= nums .length ; i ++) {
32
- previousSums [i ] = previousSums [i - 1 ] + nums [i - 1 ];
33
+ previousSums [i ] = previousSums [i - 1 ] + nums [i - 1 ];
33
34
}
34
35
35
36
int n = nums .length ;
36
- for (int i = 1 ; i <= n - 6 ; i ++) {
37
+ for (int i = 1 ; i <= n - 6 ; i ++) {
37
38
long sum1 = previousSums [i ] - previousSums [0 ];
38
- for (int j = i + 2 ; j <= n - 4 ; j ++) {
39
- long sum2 = previousSums [j ] - previousSums [i + 1 ];
39
+ for (int j = i + 2 ; j <= n - 4 ; j ++) {
40
+ long sum2 = previousSums [j ] - previousSums [i + 1 ];
40
41
if (sum1 != sum2 ) break ;
41
- for (int k = j + 2 ; k <= n - 2 ; k ++) {
42
- long sum3 = previousSums [k ] - previousSums [j + 1 ];
42
+ for (int k = j + 2 ; k <= n - 2 ; k ++) {
43
+ long sum3 = previousSums [k ] - previousSums [j + 1 ];
43
44
if (sum2 != sum3 ) break ;
44
- long sum4 = previousSums [n ] - previousSums [k + 1 ];
45
+ long sum4 = previousSums [n ] - previousSums [k + 1 ];
45
46
if (sum3 == sum4 ) return true ;
46
47
}
47
48
}
0 commit comments