সমস্যা
জাভাস্ক্রিপ্ট ফাংশন যা একটি ২ডি সংখ্যা অ্যারে নেবে। ফাংশনটি প্রতিটি সারি থেকে ঠিক একটি এলিমেন্ট বেছে নিয়ে পথ তৈরি করবে, যেখানে দুটি সম kontinue সারি থেকে বেছে নেওয়া এলিমেন্ট দুটি একই কলামে থাকবে না। এই সব পথের মাঝ থেকে ন্যূনতম সমষ্টি वाले পথের সমষ্টি রিটার্ন করবে।
উদাহরণস্বরূপ, ইনপুট যদি হয় –
const arr = [ [4, 7, 1], [2, 8, 3], [5, 6, 9] ]
তবে আউটপুট হবে –
const output = 9;
আউটপুট ব্যাখ্যা
সব বৈধ পথ গুলো হল –
| 4, 8, 9 | 4, 8, 6 | 4, 3, 6 | 4, 3, 5 |
| 7, 2, 6 | 7, 2, 9 | 7, 3, 6 | 7, 3, 5 |
| 1, 2, 6 | 1, 2, 9 | 1, 8, 9 | 1, 8, 5 |
এগুলোর মাঝে [1, 2, 6] পথটির সমষ্টি ৯ যা ন্যূনতম।
উদাহরণ
কোডটি নিচের মতো –
const arr = [ [4, 7, 1], [2, 8, 3], [5, 6, 9] ] const minimumPathSum = (arr = []) => { let first = [0, null]; let second = [0, null]; for(let row = arr.length - 1; row >= 0; row--){ let curr1 = null; let curr2 = null; for(let column = 0; column < arr[row].length; column++){ let currentSum = arr[row][column]; if(column !== first[1]){ currentSum += first[0]; }else{ currentSum += second[0]; }; if(curr1 === null || currentSum < curr1[0]){ curr2 = curr1; curr1 = [currentSum, column]; }else if(curr2 === null || currentSum < curr2[0]){ curr2 = [currentSum, column]; }; }; first = curr1; second = curr2; }; return first[0]; }; console.log(minimumPathSum(arr));আউটপুট
কনসোলে আউটপুট হবে –
9