Menu
CoddyTech

Range Sum Query

MudahPrefix sumpython iconjava iconcpp iconc iconjs icon+10

Kamu mendapatkan array bilangan bulat nums yang tidak pernah berubah dan list queries. Setiap kueri berupa pasangan [left, right] indeks berbasis 0, dan meminta hasil nums[left] + nums[left+1] + ... + nums[right], dengan kedua ujung disertakan. Kembalikan jawabannya dalam urutan yang sama dengan kueri.

Fungsi

sumRange(nums: integer-array, queries: integer-2d-array) → integer-array
numsinteger-array
array bilangan bulat, sama untuk setiap query
queriesinteger-2d-array
rentang yang dijumlahkan, masing-masing berupa pasangan [left, right] dengan left ≤ right
Mengembalikaninteger-array
jumlah setiap rentang, satu untuk tiap query, sesuai urutan query

Batasan

  • 1 ≤ nums.length ≤ 104
  • -104 ≤ nums[i] ≤ 104
  • 1 ≤ queries.length ≤ 1500
  • 0 ≤ left ≤ right < nums.length untuk setiap kueri [left, right]

Contoh

Input
nums = [3, -2, 5, 1, -4, 6]queries = [[0, 2], [1, 4], [3, 3]]
Output
[6, 0, 1]
Penjelasan
Indeks 0 sampai 2 berisi 3 + (-2) + 5 = 6. Indeks 1 sampai 4 berisi -2 + 5 + 1 + (-4) = 0. Rentang [3, 3] adalah satu nilai, yaitu 1.
challenge icon

Pertanyaan lanjutan

Jika angka-angka membentuk kisi dan setiap query meminta jumlah dalam sebuah persegi panjang, bagaimana kamu akan memperluas jumlah prefiks untuk menjawab setiap query dalam waktu konstan?

Reset kode
def sumRange(nums, queries):
    # Tulis kodemu di sini

Tes #1

Tes #2

Argumen

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

Output yang diharapkan

[6, 0, 1]