Menu
CoddyTech

Range Sum Query

ניתן לך מערך של מספרים שלמים nums שאינו משתנה, ורשימה של queries. כל שאילתה היא זוג [left, right] של אינדקסים שמתחילים ב-0, והיא מבקשת את nums[left] + nums[left+1] + ... + nums[right], כולל שני הקצוות. החזר את התשובות באותו סדר של השאילתות.

פונקציה

sumRange(nums: integer-array, queries: integer-2d-array) → integer-array
numsinteger-array
מערך המספרים השלמים, זהה לכל שאילתה
queriesinteger-2d-array
הטווחים שיש לחבר, כל אחד מהם זוג [left, right] שבו left ≤ right
מחזירהinteger-array
הסכום של כל טווח, אחד לכל שאילתה, לפי סדר השאילתות

אילוצים

  • 1 ≤ nums.length ≤ 104
  • -104 ≤ nums[i] ≤ 104
  • 1 ≤ queries.length ≤ 1500
  • 0 ≤ left ≤ right < nums.length עבור כל שאילתה [left, right]

דוגמאות

קלט
nums = [3, -2, 5, 1, -4, 6]queries = [[0, 2], [1, 4], [3, 3]]
פלט
[6, 0, 1]
הסבר
האינדקסים 0 עד 2 מכילים 3 + (-2) + 5 = 6. האינדקסים 1 עד 4 מכילים -2 + 5 + 1 + (-4) = 0. הטווח [3, 3] הוא הערך היחיד 1.
challenge icon

שאלת המשך

אם המספרים מסודרים ברשת וכל שאילתה מבקשת את סכום המלבּן, איך תרחיבו סכומי קידומת כדי לענות על כל שאילתה בזמן קבוע?

איפוס הקוד
def sumRange(nums, queries):
    # כתבו כאן את הקוד

בדיקה #1

בדיקה #2

ארגומנטים

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

הפלט הצפוי

[6, 0, 1]