Menu
CoddyTech

Range Sum Query

Você recebe um array de inteiros nums que nunca muda e uma lista de queries. Cada consulta é um par [left, right] de índices baseados em 0 e pede nums[left] + nums[left+1] + ... + nums[right], incluindo ambas as 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 números inteiros, o mesmo para todas as consultas
queriesinteger-2d-array
os intervalos a somar, cada um um par [left, right] com left ≤ right
Retornainteger-array
a soma de cada intervalo, uma 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 somam 3 + (-2) + 5 = 6. Os índices de 1 a 4 somam -2 + 5 + 1 + (-4) = 0. O intervalo [3, 3] corresponde ao único valor 1.

lock icon+14 testes ocultos ao enviar

challenge icon

Para ir além

Agora, os números formam uma grade, e cada consulta pede a soma de um retângulo definido por dois cantos. Como você estenderia as somas prefixadas para responder a cada consulta com um número constante de operações?

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

Caso 1

Caso 2

Entrada

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

Esperado

[6, 0, 1]