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 a partire da 0 e richiede 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 interi, uguale 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, uno 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 richiesta [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.
challenge icon

Per approfondire

Se i numeri formano una griglia e ogni query chiede la somma di un rettangolo, come estenderesti le somme prefisse per rispondere a ogni query in tempo costante?

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

Test #1

Test #2

Argomenti

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

Output atteso

[6, 0, 1]