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]