Menu
CoddyTech

Range Sum Query

Ricevi un array di numeri interi nums che non cambia mai e un elenco di queries. Ogni query è una coppia [left, right] di indici con base 0 e chiede di calcolare nums[left] + nums[left+1] + ... + nums[right], inclusi entrambi gli estremi. Restituisci le risposte nello stesso ordine delle query.

Funzione

sumRange(nums: integer-array, queries: integer-2d-array) → integer-array
numsinteger-array
l'array di numeri interi, lo stesso per ogni query
queriesinteger-2d-array
gli intervalli da sommare, ciascuno una coppia [left, right] con left ≤ right
Restituisceinteger-array
la somma di ciascun intervallo, una per query, nell’ordine delle query

Vincoli

  • 1 ≤ nums.length ≤ 104
  • -104 ≤ nums[i] ≤ 104
  • 1 ≤ queries.length ≤ 1500
  • 0 ≤ left ≤ right < nums.length per ogni query [left, right]

Esempi

Input
nums = [3, -2, 5, 1, -4, 6]queries = [[0, 2], [1, 4], [3, 3]]
Output
[6, 0, 1]
Spiegazione
Gli indici da 0 a 2 contengono 3 + (-2) + 5 = 6. Gli indici da 1 a 4 contengono -2 + 5 + 1 + (-4) = 0. L'intervallo [3, 3] è il singolo valore 1.

lock icon+14 test nascosti all’invio

challenge icon

Per approfondire

Ora i numeri formano una griglia e ogni query chiede la somma di un rettangolo definito da due angoli. Come estenderesti le somme prefisse per rispondere a ogni query con un numero costante di operazioni?

Ripristina il codice
def sumRange(nums, queries):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Input

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

Atteso

[6, 0, 1]