Определить, можно ли разбить массив чисел на два массива, причем каждый массив содержит одинаковую сумму чисел

Ниже приведен код, позволяющий определить, можно ли разбивать массив чисел на два массива, причем каждый массив содержит одинаковую сумму чисел. например: {1, 3, 2, 6} можно разделить на {6} и {1,2,3}, поэтому верните true, а {1,5,7} нельзя разделить на два, сбалансированный массив, поэтому верните ложь

public boolean canBalance(int[] nums) {
    for (int i = 0; i < nums.length; i++) { 
       int sum = 0;
       for (int j = 0; j < i; j++) sum += nums[j];
       for (int j = i; j < nums.length; j++) sum -= nums[j];
       if (sum == 0) return true;    
    }    
    return false;
}

Это приемлемый ответ для упражнения в CodingBat, я не понимаю эту часть в частности:

for (int j = 0; j < i; j++) sum += nums[j];
for (int j = i; j < nums.length; j++) sum -= nums[j];

не для итерации обычно начинается с {и заканчивается}? и как получится, если сумма == 0 означает, что она может быть сбалансирована? Я попытался записать это на листе бумаги с массивом {1,3,2,6} и иметь сумму 26, которая возвращает false, где очевидно, что {1,3,2,6} должен возвращать true.

Я думаю, что я неправильно прочитал код, хотя я не знаю, какой именно. Или, может быть, алгоритм неверен, но он был принят в codingbat

Ответы на вопрос(8)

Ваш ответ на вопрос