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]