আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি ইন্টিজার অ্যারে নিবে। ফাংশনটি নন-অ্যাডজেসেন্ট এলিমেন্টের সাবসেট বের করবে যেন সমষ্টি সর্বোচ্চ হয়। এবং সেই সাবসেটের সমষ্টি রিটার্ন করবে।
উদাহরণ: ইনপুট অ্যারে:
const arr = [3, 5, 7, 8, 10];
আউটপুট হবে ২০ কারণ নন-অ্যাডজেসেন্ট সাবসেট হবে ৩, ৭ এবং ১০।
উদাহরণ
এটির কোড হবে:
const arr = [3, 5, 7, 8, 10]; const maxSubsetSum = (arr = []) => { let min = -Infinity const helper = (arr, ind) => { if ( ind < 0 ){ return min }; let inc = helper(arr, ind-2); let notInc = helper(arr, ind-1); inc = inc == min ? arr[ind] : Math.max(arr[ind], arr[ind] + inc); return Math.max( inc, notInc ); }; return helper(arr, arr.length - 1); }; console.log(maxSubsetSum(arr));
আউটপুট
কনসোলে আউটপুট হবে:
20