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

JavaScript में मैट्रिक्स में 1 की सबसे लंबी लाइन ढूंढना


मान लीजिए, हमारे पास एक बाइनरी मैट्रिक्स (सरणियों की सरणी जिसमें केवल 0 या 1 होता है) है जैसे:

const arr = [    [0,1,1,0],    [0,1,1,0],    [0,0,0,1] ];

हमें एक JavaScript फ़ंक्शन लिखना है जो ऐसी एक मैट्रिक्स को पहली और एकमात्र आर्ग्युमेंट के रूप में लेता है।

हमारे फ़ंक्शन का कार्य मैट्रिक्स में लगातार 1 की सबसे लंबी लाइन ढूंढना और उसमें 1 की संख्या वापस करना है। लाइन क्षैतिज, लंबवत, विकर्ण या प्रतिविकर्ण हो सकती है।

उदाहरण के लिए, उपरोक्त सरणी के लिए, आउटपुट होना चाहिए:

const output = 3

क्योंकि सबसे लंबी लाइन वह है जो arr[0][1] से शुरू होती है और विकर्ण रूप से arr[2][3] तक फैली होती है।

कोड

const arr = [    [0,1,1,0],    [0,1,1,0],    [0,0,0,1] ]; const longestLine = (arr = []) => {    if(!arr.length){       return 0;    }    let rows = arr.length, cols = arr[0].length;    let res = 0;    const dp = Array(rows).fill([]);    dp.forEach((el, ind) => {       dp[ind] = Array(cols).fill([]);       dp[ind].forEach((undefined, subInd) => {          dp[ind][subInd] = Array(4).fill(null);       });    });    for (let i = 0; i < rows; i++) {       for (let j = 0; j < cols; j++) {          if (arr[i][j] == 1) {             dp[i][j][0] = j > 0 ? dp[i][j - 1][0] + 1 : 1;             dp[i][j][1] = i > 0 ? dp[i - 1][j][1] + 1 : 1;             dp[i][j][2] = (i > 0 && j > 0) ? dp[i - 1][j - 1][2] + 1 : 1;             dp[i][j][3] = (i > 0 && j < cols - 1) ? dp[i - 1][j + 1][3] + 1 : 1;             res = Math.max(res, Math.max(dp[i][j][0], dp[i][j][1]));             res = Math.max(res, Math.max(dp[i][j][2], dp[i][j][3]));          };       };    };    return res; }; console.log(longestLine(arr));

आउटपुट

कंसोल में आउटपुट होगा:

3
  1. - जावास्क्रिप्ट में स्ट्रिंग में सबसे लंबे स्वर उपस्ट्रिंग की लंबाई ढूंढना

    समस्याहमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक स्ट्रिंग लेता है। हमारा फ़ंक्शन सबसे लंबे सन्निहित उपस्ट्रिंग की लंबाई लौटाएगा जिसमें केवल स्वर हों।उदाहरणनिम्न कोड देखें:const str = schooeal; const findLongestVowel = (str = ) => {    let cur = 0    let max = 0    

  1. - JavaScript में सबसे लंबी लगातार जोड़ श्रृंखला ढूंढना

    समस्याहमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं के जोड़े की एक सरणी arr को एकमात्र आर्गुमेंट के रूप में लेता है। प्रत्येक जोड़े में, पहली संख्या हमेशा दूसरी संख्या से छोटी होती है।अब, हम एक जोड़ी (c, d) को परिभाषित करते हैं जो दूसरी जोड़ी (a, b) का अनुसरण कर सकती है यदि और केवल यदि b < c। इस त

  1. - C++ में मैट्रिक्स में लगातार एक की सबसे लंबी रेखा

    मान लीजिए हमारे पास एक बाइनरी मैट्रिक्स M है, हमें उस मैट्रिक्स में लगातार एक की सबसे लंबी रेखा ढूंढनी है। रेखा क्षैतिज, लंबवत, विकर्ण या प्रतिविकर्ण हो सकती है। उदाहरण के लिए, यदि इनपुट मैट्रिक्स है: 0110 0110 0001 तो आउटपुट 3 होगा। हल करने की विधि हम डायनामिक प्रोग्रामिंग का उपयोग करेंगे: re