Menu
CoddyTech

Range Sum Query

On vous donne un tableau d’entiers nums qui ne change jamais et une liste de queries. Chaque requête est une paire [left, right] d’indices commençant à 0, et demande le résultat de nums[left] + nums[left+1] + ... + nums[right], les deux extrémités incluses. Retournez les réponses dans le même ordre que les requêtes.

Fonction

sumRange(nums: integer-array, queries: integer-2d-array) → integer-array
numsinteger-array
le tableau d’entiers, identique pour chaque requête
queriesinteger-2d-array
les intervalles à additionner, chacun étant une paire [left, right] avec left ≤ right
Renvoieinteger-array
la somme de chaque plage, une par requête, dans l’ordre des requêtes

Contraintes

  • 1 ≤ nums.length ≤ 104
  • -104 ≤ nums[i] ≤ 104
  • 1 ≤ queries.length ≤ 1500
  • 0 ≤ left ≤ right < nums.length pour chaque requête [left, right]

Exemples

Entrée
nums = [3, -2, 5, 1, -4, 6]queries = [[0, 2], [1, 4], [3, 3]]
Sortie
[6, 0, 1]
Explication
Les indices de 0 à 2 contiennent 3 + (-2) + 5 = 6. Les indices de 1 à 4 contiennent -2 + 5 + 1 + (-4) = 0. L’intervalle [3, 3] correspond à la valeur unique 1.

lock icon+14 tests cachés à la soumission

challenge icon

Pour aller plus loin

Maintenant, les nombres forment une grille, et chaque requête demande la somme d’un rectangle défini par deux coins. Comment étendrais-tu les sommes préfixes pour répondre à chaque requête en un nombre constant d’opérations ?

Réinitialiser le code
def sumRange(nums, queries):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Entrée

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

Attendu

[6, 0, 1]