Menu
CoddyTech
flag Ar iconالعربيةdown icon

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.

lock icon+14 اختبارات مخفية عند الإرسال

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]