этот вопрос решит O (n ^ 2) время, O (n) пространство или O (n) время, O (n) пространство ..
Теперь наилучшее оптимальное решение в этом случае (т.е. время O (n), O (n))
предположим, что задано [] = {1,3,5,2,6,4,9}
если мы создадим массив (sum []), в котором мы сохранили значение суммы индекса 0 для этого конкретного индекса. Как и для массива a [], массив sum будет sum [] = {1,4,9,11, 17,21,30}; как
{1,3 + 1,3 + 1 + 5 ......} это занимает O (n) время и O (n) пространство ..
когда мы даем индекс, то он напрямую выбирается из массива sum, это означает, что add (i, j) = sum [j] -sum [i-1]; и это занимает O (1) раз и O (1) пробелы ...
Итак, эта программа занимает O (n) времени и O (N) пробелов.
int sum [] = new int [l];
sum[0]=a[0];
System.out.print(cumsum[0]+" ");
for(int i=1;i<l;i++)
{
sum[i]=sum[i-1]+a[i];
System.out.print(sum[i]+" ");
}
? * Это дает 1,4,9,11,17,21,30 и занимает O (n) времени и O (n) пробелов * /
sum (i, j) = сумма [j] -сумма [i-1] / это дает сумму индексов от i до j и занимает O (1) времени и O (1) пробелов /
Итак, эта программа использует O (n) времени и O (N) пробелов. выделенный текст