কম্পিউটার

জাভাস্ক্রিপ্টে সীমার যোগফল সহ জোড়া গণনা করা হচ্ছে


পরিসীমা সমষ্টি

ব্যাপ্তির যোগফল 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

  1. জাভাস্ক্রিপ্টে সর্বনিম্ন সূচক যোগ সহ সাধারণ উপাদান

  2. জাভাস্ক্রিপ্টে পছন্দসই যোগফল সহ বাইনারি সাব্যারে

  3. জাভাস্ক্রিপ্টে মিলে যাওয়া সাবস্ট্রিং গণনা করা হচ্ছে

  4. জাভাস্ক্রিপ্টে মানচিত্র সমষ্টি জোড়া