Menu
CoddyTech

Range Sum Query

Você recebe um array de números inteiros nums que nunca muda e uma lista de queries. Cada consulta é um par [left, right] de índices baseados em 0 e solicita nums[left] + nums[left+1] + ... + nums[right], incluindo as duas extremidades. Retorne as respostas na mesma ordem das consultas.

Função

sumRange(nums: integer-array, queries: integer-2d-array) → integer-array
numsinteger-array
o array de inteiros, o mesmo para todas as consultas
queriesinteger-2d-array
os intervalos a serem somados, cada um um par [left, right] com left ≤ right
Retornainteger-array
a soma de cada intervalo, um por consulta, na ordem das consultas

Restrições

  • 1 ≤ nums.length ≤ 104
  • -104 ≤ nums[i] ≤ 104
  • 1 ≤ queries.length ≤ 1500
  • 0 ≤ left ≤ right < nums.length para cada consulta [left, right]

Exemplos

Entrada
nums = [3, -2, 5, 1, -4, 6]queries = [[0, 2], [1, 4], [3, 3]]
Saída
[6, 0, 1]
Explicação
Os índices de 0 a 2 contêm 3 + (-2) + 5 = 6. Os índices de 1 a 4 contêm -2 + 5 + 1 + (-4) = 0. O intervalo [3, 3] é o valor único 1.
challenge icon

Para ir além

Se os números formam uma grade e cada consulta pede a soma de um retângulo, como você estenderia as somas prefixadas para responder a cada consulta em tempo constante?

Redefinir código
def sumRange(nums, queries):
    # Escreva o código aqui

Teste #1

Teste #2

Argumentos

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

Saída Esperada

[6, 0, 1]