 Bir "nums" tamsayı dizisi verildiğinde, aşağıdaki türde birden çok sorguyu işleyin: "left" ve "right" dahil, "left <= right" dizinleri arasındaki "nums" öğelerinin toplamını hesaplayın. "NumArray" sınıfını uygulayın: "NumArray(int[] nums)" Nesneyi "nums" tamsayı dizisiyle başlatır. `int sumRange(int sol, int sağ)` `sol` ve `sağ` indeksleri dahil olmak üzere `nums` öğelerinin toplamını döndürür (yani, `nums[left] + nums[left + 1] + ... + sayılar[sağ]`).
"NumArray" sınıfını uygulamak için, "prefix[i]"nin "0" ile "i" arasındaki "nums" öğelerinin toplamı olduğu bir "prefix" ön ek toplamı dizisi oluşturabilirsiniz. Ardından, "toplamAralık(sol, sağ)", "önek[sağ] - önek[sol-1]" olarak hesaplanabilir ("sol > 0" olduğu varsayılarak). "left", "0"a eşitse, "sumRange(left, right)" basitçe "önek[sağ]" olur. "Önek"in başlatılması, "NumArray" sınıfının yapıcısında yapılabilir. "sumRange"in zaman karmaşıklığı "O(1)" olacaktır. İşte `NumArray` sınıfının uygulaması: ``` class NumArray { private int[] öneki; public Dizi Sayı(int[] sayılar) { önek = yeni int[say.uzunluk]; for (int i = 0; i < sayı.uzunluk; i++) { if (i == 0) { önek[i] = sayı[i]; } else { önek[i] = önek[i-1] + sayılar[i]; } } } public int sumRange(int sol, int sağ) { if (sol == 0) { dönüş ön eki[sağ]; } else { dönüş öneki[sağ] - önek[sol-1]; } } } ``` `nums` giriş dizisi ile `NumArray` sınıfının bir örneğini oluşturabilir ve ardından belirtilen indeksler arasındaki öğelerin toplamını almak için `sumRange` yöntemini çağırabilirsiniz.