Menu
CoddyTech

Range Sum Query

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

Fonksiyon

sumRange(nums: integer-array, queries: integer-2d-array) → integer-array
numsinteger-array
tamsayı dizisi; her sorgu için aynıdır
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 sorgu [left, right] 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'dan 2'ye kadar olan indekslerde 3 + (-2) + 5 = 6 bulunur. 1'den 4'e kadar olan indekslerde -2 + 5 + 1 + (-4) = 0 bulunur. [3, 3] aralığı, tek bir değer olan 1'i içerir.

lock iconGönderirken +14 gizli test

challenge icon

Ek soru

Artık sayılar bir ızgara oluşturuyor ve her sorgu, iki köşesi verilen bir dikdörtgenin toplamını soruyor. Her sorguyu sabit sayıda işlemle yanıtlamak için önek toplamlarını nasıl genişletirdin?

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

Durum 1

Durum 2

Girdi

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

Beklenen

[6, 0, 1]