Menu
CoddyTech

Range Sum Query

Otrzymujesz tablicę liczb całkowitych nums, która nigdy się nie zmienia, oraz listę queries. Każde zapytanie to para [left, right] indeksów liczonych od 0. Polega ono na obliczeniu nums[left] + nums[left+1] + ... + nums[right], z uwzględnieniem obu końców. Zwróć odpowiedzi w tej samej kolejności co zapytania.

Funkcja

sumRange(nums: integer-array, queries: integer-2d-array) → integer-array
numsinteger-array
tablica liczb całkowitych, taka sama dla każdego zapytania
queriesinteger-2d-array
zakresy do zsumowania, każdy jako para [left, right], gdzie left ≤ right
Zwracainteger-array
suma każdego zakresu, po jednym dla każdego zapytania, w kolejności zapytań

Ograniczenia

  • 1 ≤ nums.length ≤ 104
  • -104 ≤ nums[i] ≤ 104
  • 1 ≤ queries.length ≤ 1500
  • 0 ≤ left ≤ right < nums.length dla każdego zapytania [left, right]

Przykłady

Wejście
nums = [3, -2, 5, 1, -4, 6]queries = [[0, 2], [1, 4], [3, 3]]
Wyjście
[6, 0, 1]
Wyjaśnienie
Indeksy od 0 do 2 zawierają 3 + (-2) + 5 = 6. Indeksy od 1 do 4 zawierają -2 + 5 + 1 + (-4) = 0. Zakres [3, 3] to pojedyncza wartość 1.
challenge icon

Pytanie dodatkowe

Jeśli liczby tworzą siatkę, a każde zapytanie dotyczy sumy w prostokącie, jak rozszerzyć sumy prefiksowe, aby odpowiadać na każde zapytanie w czasie stałym?

Zresetuj kod
def sumRange(nums, queries):
    # Napisz kod tutaj

Test #1

Test #2

Argumenty

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

Oczekiwany wynik

[6, 0, 1]