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です。

lock icon提出時に隠しテスト+14件

challenge icon

発展問題

これで数値はグリッド状に並び、各クエリでは2つの角で指定された長方形の合計を求めます。各クエリに定数回の演算で答えられるように、累積和をどのように拡張しますか?

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

ケース1

ケース2

入力

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

期待値

[6, 0, 1]