اكتب كلاس باسم 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 إلى isumRange(l, r) = prefix[r] - prefix[l-1]