У меня есть упражнение, которое нужно выполнить с помощью временной сложности O (n), однако я могу решить его только с помощью решения O (n ^ 2).
У вас есть массив, и вам нужно подсчитать длинную непрерывную последовательность, чтобы сумма могла быть разделена на 3 без остатка. Например, для array {1,2,3,-4,-1)
функция вернет 4, потому что самая длинная последовательность, которую ее sum(0)
можно разделить на 3
, равна {2,3,-4,-1}
.
Мое решение O (n ^ 2) основано на arithmetic progression
. Есть ли способ сделать это с помощью O (n) сложности?
Пожалуйста, мне нужна только подсказка или теоретическое объяснение. Пожалуйста, не пишите полное решение:)