Menu
CoddyTech

Range Sum Query

やさしい累積和python iconjava iconcpp iconc iconjs icon+10

変更されない整数の配列 nums と、queries のリストが与えられます。各クエリは0始まりのインデックスのペア [left, right] で、両端を含む nums[left] + nums[left+1] + ... + nums[right] を求めます。クエリと同じ順序で答えを返してください。

関数

sumRange(nums: integer-array, queries: integer-2d-array) → integer-array
numsinteger-array
すべてのクエリで同じ整数の配列
queriesinteger-2d-array
合計する範囲。それぞれは left ≤ right を満たす [left, right] のペアです
戻り値integer-array
各クエリについて、クエリの順序で範囲ごとの合計

制約

  • 1 ≤ nums.length ≤ 104
  • -104 ≤ nums[i] ≤ 104
  • 1 ≤ queries.length ≤ 1500
  • 0 ≤ left ≤ right < nums.lengthそれぞれのクエリ [left, right] に対して

例

入力
nums = [3, -2, 5, 1, -4, 6]queries = [[0, 2], [1, 4], [3, 3]]
出力
[6, 0, 1]
説明
インデックス0から2には3 + (-2) + 5 = 6が含まれます。インデックス1から4には-2 + 5 + 1 + (-4) = 0が含まれます。範囲[3, 3]は単一の値1です。
challenge icon

発展問題

数値がグリッド状に並んでいて、各クエリが長方形範囲の合計を求めるものだとしたら、各クエリに定数時間で答えられるよう、累積和をどのように拡張しますか?

コードをリセット
def sumRange(nums, queries):
    # ここにコードを書いてください

テスト #1

テスト #2

引数

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

期待される出力

[6, 0, 1]