Menu
CoddyTech

Range Sum Query

Hiç değişmeyen bir tamsayı dizisi nums ve bir queries listesi alırsın. Her sorgu, 0 tabanlı indekslerden oluşan bir [left, right] çiftidir ve nums[left] + nums[left+1] + ... + nums[right] toplamını sorar; her iki uç da dahildir. Yanıtları sorgularla aynı sırada döndür.

Fonksiyon

sumRange(nums: integer-array, queries: integer-2d-array) → integer-array
numsinteger-array
tamsayı dizisi, her sorgu için aynı
queriesinteger-2d-array
toplanacak aralıklar; her biri left ≤ right koşulunu sağlayan bir [left, right] çifti
Döndürürinteger-array
sorgu sırasına göre, her sorgu için bir tane olmak üzere her aralığın toplamı

Kısıtlar

  • 1 ≤ nums.length ≤ 104
  • -104 ≤ nums[i] ≤ 104
  • 1 ≤ queries.length ≤ 1500
  • 0 ≤ left ≤ right < nums.length her [left, right] sorgusu için

Örnekler

Girdi
nums = [3, -2, 5, 1, -4, 6]queries = [[0, 2], [1, 4], [3, 3]]
Çıktı
[6, 0, 1]
Açıklama
0 ile 2 arasındaki indekslerde 3 + (-2) + 5 = 6 bulunur. 1 ile 4 arasındaki indekslerde -2 + 5 + 1 + (-4) = 0 bulunur. [3, 3] aralığı, tek bir değer olan 1'dir.
challenge icon

Ek soru

Sayılar bir ızgara oluşturuyorsa ve her sorgu bir dikdörtgenin toplamını istiyorsa, her sorguyu sabit zamanda yanıtlamak için önek toplamlarını nasıl genişletirsin?

Kodu sıfırla
def sumRange(nums, queries):
    # Kodu buraya yazın

Test #1

Test #2

Argümanlar

nums = [3, -2, 5, 1, -4, 6]
queries = [[0, 2], [1, 4], [3, 3]]

Beklenen Çıktı

[6, 0, 1]