পরিসীমা সমষ্টি
ব্যাপ্তির যোগফল rangeSum(i, j) সূচক এবং j (i ≤ j) এর মধ্যে থাকা উপাদানগুলির সমষ্টি হিসাবে সংজ্ঞায়িত করা হয়, অন্তর্ভুক্ত।
সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা পূর্ণসংখ্যার একটি অ্যারে নেয়, arr, প্রথম আর্গুমেন্ট হিসাবে এবং দুটি সংখ্যা, দ্বিতীয় এবং তৃতীয় উপাদান হিসাবে উপরের এবং নিম্ন।
আমাদের ফাংশনটি পরিসীমা [উপরের, নিম্ন], (উভয়ই অন্তর্ভুক্ত) এর মধ্যে থাকা পরিসরের যোগফলের সংখ্যা ফেরত দেওয়ার কথা।
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −
const arr = [1, 4, 3]; const upper = 5; const lower = 2;
তারপর আউটপুট −
হওয়া উচিতconst output = 3;
উদাহরণ
এর জন্য কোড হবে −
const arr = [1, 4, 3]; const upper = 5; const lower = 2; const countRangeSum = (arr = [], lower, upper) => { const sums = [0]; let res = 0; let last = 0; let firstge = value => { let l = 0, r = sums.length, m; do { m = Math.floor((r + l) / 2); sums[m] < value ? l = m : r = m; } while (r >= l + 2); while (r > 0 && sums[r - 1] >= value ) { r -= 1; } return r; }; arr.forEach(num => { last += num; res += firstge(last - lower + 1) - firstge(last - upper); sums.splice(firstge(last), 0, last); }); return res; }; console.log(countRangeSum(arr, lower, upper));
আউটপুট
কনসোলে আউটপুট হবে −
3