Начиная с первого значения: если оно отрицательное, вы нашли один из этих подмассивов, если оно положительное, вы нашли один подмассив с положительной суммой (приходящий к нулю позже).
Затем давайте рассмотрим следующийзначение: если отрицательное / положительное значение, вы нашли еще один такой подмассив. Однако вы можете комбинировать их со всеми найденными вами подмассивами!
Если вы нашли n p положительных подмассивов, вы получите еще один n p положительные подмассивы, если текущее значение положительно, или другие n p отрицательные массивы, если текущее значение отрицательно, аналогично для числа отрицательных n n массивов, просто вы получаете новые массивы с отрицательным произведением для положительного значения и новые массивы с положительным произведением для отрицательного значения.
Специальное значение ноль: это значениесодержащийся в любом подмассиве будет давать ноль как продукт, больше не имеет значения, каковы другие факторы. Таким образом, вы можете остановиться на этом этапе, добавив n n к некоторому общему количеству и перезапустить с n p и n n , равное нулю.
Рассмотрев все числа в массиве, не забудьте добавить последние вычисленные n n к общей сумме.
Теперь все, что осталось, это подделать этот алгоритм в код, который остается на ваше усмотрение ... Если у вас возникнут проблемы с этим, не стесняйтесь задавать новый вопрос, предоставляякод, который вы написали до сих пор.