समस्या
जावास्क्रिप्ट फ़ंक्शन जो पहले और एकमात्र तर्क के रूप में संख्याओं की 2-डी सरणी लेता है।
हमारे फ़ंक्शन को प्रत्येक पंक्ति से बिल्कुल एक तत्व चुनकर 2-डी सरणी से पथ ढूंढना चाहिए, और आसन्न पंक्तियों से चुने गए दो तत्व एक ही कॉलम में नहीं होने चाहिए। इन सभी पथों में से, हमारे फ़ंक्शन को उस पथ का योग वापस करना चाहिए जिसमें न्यूनतम योग हो।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
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] का योग सबसे कम 9 है।
उदाहरण
इसके लिए कोड होगा -
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