اكتب كلاس باسم RangeQuery يُتيح الاستعلام عن مجموع عناصر في نطاق معين بكفاءة.

المطلوب:

  • الكلاس يأخذ في البناء nums (قائمة من الأرقام)
  • يجب تطبيق دالة:
    • sumRange(left, right): تُرجع مجموع العناصر من الفهرس left إلى right (شامل)
  • استخدم Prefix Sum للحصول على O(1) لكل استعلام
  • التهيئة يمكن أن تأخذ O(n)

مثال:

rq = RangeQuery([1, 3, 5, 7, 9])
rq.sumRange(0, 2)  # 9 (1+3+5)
rq.sumRange(1, 3)  # 15 (3+5+7)
rq.sumRange(2, 4)  # 21 (5+7+9)

ملاحظات:

  • احسب مصفوفة Prefix Sum في البناء
  • prefix[i] يحتوي على مجموع العناصر من 0 إلى i
  • sumRange(l, r) = prefix[r] - prefix[l-1]

الناتج (Console)

سيظهر ناتج تنفيذ الكود هنا.