Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

2-डी में सबसे लंबा पथ जिसमें जावास्क्रिप्ट में बढ़ते क्रम शामिल हैं

<घंटा/>

बढ़ते क्रम

संख्याओं का एक क्रम जिसमें प्रत्येक अनुवर्ती तत्व या तो पिछले तत्व से बड़ा या बराबर होता है, एक बढ़ता हुआ क्रम होता है।

उदाहरण के लिए,

4, 6, 8, 9, 11, 14 is increasing sequence
3, 3, 3, 3, 3, 3, 3 is also an increasing sequence

समस्या:

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो संख्याओं की 2-डी सरणी लेता है, एआर, एकमात्र तर्क के रूप में। हमारे फ़ंक्शन को उस सरणी में उस सबसे लंबे पथ की लंबाई को खोजना और वापस करना चाहिए जिसमें केवल बढ़ती संख्याएं हों।

उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -

const arr = [
   [4, 5, 6],
   [4, 3, 7],
   [3, 3, 2]
];

तब आउटपुट होना चाहिए -

const output = 4;

आउटपुट स्पष्टीकरण:

क्योंकि सबसे लंबा बढ़ता क्रम 4, 5, 6, 7 है।

उदाहरण

इसके लिए कोड होगा -

const arr = [
   [4, 5, 6],
   [4, 3, 7],
   [3, 3, 2]
];
const longestIncreasingPath = (arr = []) => {
   let longest = 0;
   let dp = Array(arr.length).fill(null).map(() =>
   Array(arr[0].length).fill(1));
   const backtracking = (row, col) => {
      if (dp[row][col]!=1) return dp[row][col];
      let dRow = [1,0,-1,0];
      let dCol = [0,1,0,-1];
      for (let i = 0;i<dRow.length;i++) {
         let nR = row + dRow[i], nC = col+dCol[i];
         if (nR >= 0 && nR < arr.length && nC >= 0 && nC < arr[0].length && arr[nR][nC] > arr[row][col]) {
            dp[row][col] = Math.max(dp[row][col], 1 + backtracking(nR, nC))
         };
      };
      return dp[row][col];
   }
   for (let i=0;i<arr.length;i++) {
      for (let j=0;j<arr[0].length;j++) {
         longest = Math.max(longest, backtracking(i, j));
      };
   };
   return longest;
};
console.log(longestIncreasingPath(arr));

कोड स्पष्टीकरण:

आइडिया

  • यहां, हमने बैकट्रैकिंग डेप्थ फर्स्ट सर्च का उपयोग किया है।

  • रिकर्सन फ़ंक्शन किसी दिए गए पंक्ति और कॉलम के लिए सबसे लंबा बढ़ता हुआ पथ देता है

  • यदि हमारे पास पहले से ही किसी पद के लिए सबसे लंबे समय तक बढ़ते पथ का रिकॉर्ड है, तो हम उसे आसानी से वापस कर सकते हैं।

आउटपुट

और कंसोल में आउटपुट होगा -

4

  1. जावास्क्रिप्ट में सबसे छोटा पथ एल्गोरिदम

    ग्राफ सिद्धांत में, सबसे छोटी पथ समस्या एक ग्राफ में दो शीर्षों (या नोड्स) के बीच पथ खोजने की समस्या है जैसे कि इसके घटक किनारों के भार का योग कम से कम हो। यहां हमें अपने ऐड एज को संशोधित करने और किनारों पर वज़न जोड़ने की अनुमति देने के लिए निर्देशित विधियों को जोड़ने की आवश्यकता है। आइए देखें कि

  1. जावास्क्रिप्ट में फाइबोनैचि अनुक्रम

    फाइबोनैचि संख्याएँ ऐसी संख्याएँ हैं, जो पहले दो के बाद की श्रृंखला में प्रत्येक संख्या दो पूर्ववर्ती संख्याओं का योग होती हैं। श्रृंखला 1 से शुरू होती है। उदाहरण - 1, 1, 2, 3, 5, 8, 13, 21, 34, …. हम निम्नानुसार nth उत्पन्न करने के लिए एक प्रोग्राम लिख सकते हैं - functionfibNaive(n) {  

  1. div छुपाएं जिसमें जावास्क्रिप्ट के साथ विशिष्ट टेक्स्ट है?

    सबसे पहले, आपको getElementsByClassName() की मदद से div क्लास को एक्सट्रेक्ट करना होगा और लूप के लिए पुनरावृति करना होगा और विशिष्ट टेक्स्ट दिखाने के लिए OR कंडीशन का उपयोग करना होगा। साथ ही, अपना Div.style.display=none सेट करें। निम्नलिखित जावास्क्रिप्ट कोड है - उदाहरण <!DOCTYPE html> <ht