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

জাভাস্ক্রিপ্টে ২ডি অ্যারে-এ টার্গেট থেকে ছোট বড়তম রেক্ট্যাঙ্গেলের সমষ্টি


সমস্যা

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

ফাংশনটি ২ডি অ্যারে-এ থেকে সেই রেক্ট্যাঙ্গেলটি খুঁজে বের করবে যার সমষ্টি সমস্ত রেক্ট্যাঙ্গেলের মধ্যে সর্বোচ্চ কিন্তু টার্গেট সমষ্টির চেয়ে কম বা সমান। ফাংশনটি সেই সর্বোচ্চ সমষ্টিটি রিটার্ন করবে।

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

const arr = [ [1, 0, 1], [0, -2, 3] ]; const num = 2;

তবে আউটপুট হবে –

const output = 2;

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

কারণ সবচেয়ে ছোট রেক্ট্যাঙ্গেলটি হল –

[ [0, 1], [-2, 3] ]

উদাহরণ

কোডটি নিচের মতো –

const arr = [ [1, 0, 1], [0, -2, 3] ]; const num = 2; const maxSum = (arr = [], num = 1) => { const rows = arr.length; const cols = arr[0].length; let maxSum = -Infinity; for(let l = 0; l < rows; l++) { const dp = Array(cols).fill(0); for(let r = l; r < rows; r++) { let sum = 0, max = -Infinity; for(let c = 0; c < cols; c++) { dp[c] += arr[r][c]; if(sum < 0) sum = 0; sum += dp[c]; max = Math.max(max, sum); } if(max <= num) maxSum = Math.max(max, maxSum); else { max = -Infinity; for(let c = 0; c < cols; c++) { sum = 0; for(let d = c; d < cols; d++) { sum += dp[d]; if(sum <= num) max = Math.max(sum, max); } } maxSum = Math.max(max, maxSum); } if(maxSum === num) return num; } } return maxSum; }; console.log(maxSum(arr, num));

আউটপুট

কনসোলে আউটপুট হবে –

2
  1. জাভাস্ক্রিপ্টে n দ্বারা বিভাজ্য সাব-অ্যারে সমষ্টি গণনা

  2. জাভাস্ক্রিপ্টে রেক্ট্যাঙ্গেলের ভেতরে থাকা বর্গগুলোর পেরিমিটার যোগফল

  3. জাভাস্ক্রিপ্টে মনোটোন ডিজিট সহ ঠিক ছোট সংখ্যা

  4. C++-এ N-র চেয়ে ছোট বা সমান এবং K-দিয়ে বিভাজ্য সর্বোচ্চ সংখ্যা