Я ищу идею, концепцию или проверенную структуру данных, которая была бы очень эффективной при доступе к коллекции, в которой хранятся совокупные значения.
Пример может пролить больше света на мои нужды:
У меня есть список значений (2,3,5).
Этот список при рассмотрении совокупных значений будет (2,5,10).
Теперь я добавлю 1 в начале списка и получу (1,2,3,5) и в совокупном выражении (1,3,6,11).
Мне нужно только взглянуть на совокупные значения, меня совсем не интересуют 1,2,3,5. Мне нужно иметь возможность быстро вставлять в позицию, удалять позицию, и все это должно быстро обновить накопительный массив (в идеале, без итерации по всему массиву и пересчета значений.
Есть идеи или намеки?
@ Кристо (слишком долго, чтобы поместить в комментарии): Чтобы выяснить, почему отрицательные числа делают значение общей суммы бессмысленным, следуйте этому примеру.
Вставьте 1, а затем -1. Сумма 1, чем 0.
(1, -1) // (1,0)
Вставить 3, а затем вставить -3. Сумма 3, затем 0.
(1,3, -1, -3) // (1,4,3,0)
Вставьте 2, а затем вставьте -2. Сумма 2, затем 0.
(1,3,2, -1, -2, -3) // (1,4,6,5,3,0)
Если бы мое "магическое число" составляло 4, общая сумма не указала бы, превысила ли я его.
PS: Основная причина этого в том, что я могу сказать, прошел ли я определенное значение и где в цепочке.