Menu
CoddyTech

Range Sum Query

Recibes un arreglo de enteros nums que nunca cambia y una lista de queries. Cada consulta es un par [left, right] de índices basados en 0, y solicita nums[left] + nums[left+1] + ... + nums[right], incluidos ambos extremos. Devuelve las respuestas en el mismo orden que las consultas.

Función

sumRange(nums: integer-array, queries: integer-2d-array) → integer-array
numsinteger-array
el arreglo de enteros, el mismo para cada consulta
queriesinteger-2d-array
los intervalos que hay que sumar, cada uno un par [left, right] con left ≤ right
Devuelveinteger-array
la suma de cada rango, una por consulta, en el orden de las consultas

Restricciones

  • 1 ≤ nums.length ≤ 104
  • -104 ≤ nums[i] ≤ 104
  • 1 ≤ queries.length ≤ 1500
  • 0 ≤ left ≤ right < nums.length for every query [left, right]

Ejemplos

Entrada
nums = [3, -2, 5, 1, -4, 6]queries = [[0, 2], [1, 4], [3, 3]]
Salida
[6, 0, 1]
Explicación
Los índices del 0 al 2 contienen 3 + (-2) + 5 = 6. Los índices del 1 al 4 contienen -2 + 5 + 1 + (-4) = 0. El rango [3, 3] es el valor único 1.
challenge icon

Para ir más allá

Si los números forman una cuadrícula y cada consulta pide la suma de un rectángulo, ¿cómo ampliarías las sumas de prefijos para responder cada consulta en tiempo constante?

Restablecer código
def sumRange(nums, queries):
    # Escribe el código aquí

Prueba #1

Prueba #2

Argumentos

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

Salida Esperada

[6, 0, 1]