কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে রেঞ্জ সমষ্টি গণনা করা নির্দিষ্ট সীমার মধ্যে


রেঞ্জ সমষ্টি

রেঞ্জ সমষ্টি rangeSum(i, j) বলতে একটি অ্যারে-এ i এবং j ইন্ডেক্সের মধ্যবর্তী সব এলিমেন্টের সমষ্টি বোঝায় (i ≤ j), যেটি উভয় সীমাসহ।

সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসেবে একটি ইন্টিজার অ্যারে (arr) এবং دوم ও তৃতীয় আর্গুমেন্ট হিসেবে upper এবং lower নেবে। ফাংশনটি সেই রেঞ্জ সমষ্টিগুলোর সংখ্যা রিটার্ন করবে যারা [upper, lower] রেঞ্জের মধ্যে পড়ে (উভয় সীমাসহ)।

উদাহরণস্বরূপ, ইনপুট যদি হয় –

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. জাভাস্ক্রিপ্টে MapSum ক্লাস ইমপ্লিমেন্টেশন (ইনসার্ট এবং সাম মেথড)