حالت آفلاین — محتوا از حافظهٔ کش نمایش داده می‌شود
آموزش الگوریتم و حل مسئله با پایتون؛ تمرین عملی

پیش‌بینی جمع بازه با Prefix Sum پایتون

جمع پیشوندی در پایتون؛ پرس‌وجوی بازه بدون دوباره‌کاری · 0٪

✍️ در این بخش بازه‌ها بسته‌اند: هر دو خانه چپ و راست داخل جمع قرار می‌گیرند. اگر بازه [left,right] باشد، تا right باید right+1 عضو برداریم؛ بعد سهم left عضو قبل از شروع را حذف می‌کنیم. بنابراین فرمول prefix[right+1]-prefix[left] است. علامت به‌علاوه یک از تعریف جدول می‌آید، نه از حفظ یک دستور عجیب.

مثلاً با [2, 5, 1]، جدول [0,2,7,8] است و جمع خانه‌های یک تا دو برابر 8-2=6 می‌شود. حالا این کد را دنبال کن:

nums = [4, -2, 7, 1]
prefix = [0, 4, 2, 9, 10]
left, right = 1, 2
answer = prefix[right + 1] - prefix[left]
print(answer)

ابتدا خود اعضای بازه را مشخص کن تا یک راه بررسی مستقل داشته باشی. بعد دو خانه جدول را بخوان و تفریق را انجام بده. خطای رایج، استفاده از prefix[right] است که عضو راست را جا می‌اندازد. خطای دیگر، کم کردن prefix[left-1] است؛ با این تعریف، خود prefix[left] دقیقاً سهم قبل از بازه را دارد و یک واحد عقب رفتن لازم نیست.

فعالیت شما

خروجی کد را برای جمع بسته خانه‌های 1 تا 2 از [4,-2,7,1] انتخاب کن؛ فرمول prefix[right+1]-prefix[left] است.

مطالعهٔ این گام برای همه آزاد است

برای پاسخ‌دادن، بررسی پاسخ، ثبت پیشرفت و استفاده از دستیار باید شرایط شرکت در فعالیت‌ها را داشته باشید.

برای انجام فعالیت وارد شوید

برای انجام فعالیت‌ها ابتدا این دوره‌های پیش‌نیاز را تکمیل کنید:

گزینه‌های پیش‌بینی خروجی

  1. 5
  2. 9
  3. -2