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

후속 질문

이제 숫자들이 격자를 이루고, 각 쿼리는 두 모서리로 지정된 직사각형의 합을 묻습니다. 각 쿼리에 일정한 횟수의 연산으로 답할 수 있도록 누적 합을 어떻게 확장하면 좋을까요?

코드 초기화
def sumRange(nums, queries):
    # 여기에 코드를 작성하세요
테스트 케이스

케이스 1

케이스 2

입력

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

기대값

[6, 0, 1]