Menu
CoddyTech

Range Sum Query

Recibes un arreglo de números enteros nums que nunca cambia y una lista de queries. Cada consulta es un par [left, right] de índices basados en 0, y pide 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 se deben sumar, cada uno es 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 para cada consulta [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.

lock icon+14 pruebas ocultas al enviar

challenge icon

Para ir más allá

Ahora los números forman una cuadrícula, y cada consulta pide la suma de un rectángulo definido por dos esquinas. ¿Cómo ampliarías las sumas de prefijos para responder cada consulta con una cantidad constante de operaciones?

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

Caso 1

Caso 2

Entrada

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

Esperado

[6, 0, 1]