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

জাভাস্ক্রিপ্টে অ্যারেতে প্লাস/মাইনাস অ্যাসাইন করে টার্গেট সাম পাওয়ার উপায় গণনা


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি ইন্টিজার অ্যারে arr প্রথম আর্গুমেন্ট ও একটি ইন্টিজার target دومা আর্গুমেন্ট হিসেবে নেবে।

অ্যারেতে প্রতিটি ইন্টিজারের জন্য আমরা অথবা '+' অথবা '-' অ্যাসাইন করতে পারি। ফাংশনটি বের করবে মোট কতগুলো উপায়ে '+'/'-' অ্যাসাইন করে অ্যারের উপাদানগুলোর যোগফল target করা যায়।

উদাহরণ:

const arr = [1, 1, 1, 1, 1]; const target = 3;

আউটপুট হবে:

const output = 5;

আউটপুট ব্যাখ্যা:

৫টি উপায়: -1+1+1+1+1=3, +1-1+1+1+1=3, +1+1-1+1+1=3, +1+1+1-1+1=3, +1+1+1+1-1=3

উদাহরণ

কোডটি নিচের মতো (মেমোইজেশন সহ রিকার্সন):

const arr = [1, 1, 1, 1, 1]; const target = 3; const waysToSum = (arr = [], target = 1) => { const map = {}; const find = (arr, target, i) => { let val = i + '->' + target; if(map[val] !== undefined){ return map[val]; }; if(i === 0){ if (target === 0 && arr[0] === 0) { return 2 } return arr[0] === target || arr[0] === -target ? 1 : 0 }; map[val] = find(arr, target + arr[i], i - 1) + find(arr, target - arr[i], i - 1); return map[val] }; return find(arr, target, arr.length-1) }; console.log(waysToSum(arr, target));

আউটপুট

কনসোলে আউটপুট:

5

  1. জাভাস্ক্রিপ্ট Date মেথডগুলো

  2. জাভাস্ক্রিপ্টে ভেরিয়েবল ডিক্লেয়ার করার বিভিন্ন উপায়

  3. জাভাস্ক্রিপ্টে অ্যারে খালি করার ৪টি পদ্ধতি

  4. জাভাস্ক্রিপ্টে new.target