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

JavaScript में बाइनरी मैट्रिक्स में निकटतम 0 की दूरी


एक बाइनरी मैट्रिक्स केवल 0 या 1 वाली सरणियों की सरणी होती है। हमें एक JavaScript फ़ंक्शन लिखना है जो बाइनरी मैट्रिक्स को एकमात्र आर्ग्युमेंट के रूप में लेता है।

हमारे फ़ंक्शन को समान संख्या में पंक्तियों और स्तंभों वाला एक नया मैट्रिक्स बनाना चाहिए, और मूल मैट्रिक्स के प्रत्येक तत्व के लिए परिणामी मैट्रिक्स में उस तत्व की मूल मैट्रिक्स में 0 से निकटतम दूरी होनी चाहिए।

ध्यान रखें कि दूरी की गणना करते समय यह क्षैतिज या लंबवत रूप से चल सकती है, विकर्ण रूप से नहीं। और यह गारंटी है कि मैट्रिक्स में कम से कम एक 0 है।

उदाहरण

यदि इनपुट मैट्रिक्स है:

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

तो आउटपुट मैट्रिक्स होना चाहिए:

const output = [    [0, 0, 0]    [0, 1, 0]    [1, 2, 1] ];

कोड

const arr = [    [0, 0, 0],    [0, 1, 0],    [1, 1, 1], ]; const findNearestDistance = (arr = []) => {    let array = [];    let res = arr.map((el, ind) => el.map((subEl, subInd) => {       if (subEl === 0) {          array.push([ind, subInd])          return 0       };       return Number.MAX_SAFE_INTEGER;    }));    const updateAdjacent = (ind, subInd, min, array = []) => {       if (ind < 0 || subInd < 0 || ind == arr.length || subInd == arr[0].length){          return;       };       if (res[ind][subInd] < min + 2) return          res[ind][subInd] = min + 1          array.push([ind, subInd])    };    while (array.length) {       let next = []       for (let [ind, subInd] of array) {          updateAdjacent(ind, subInd + 1, res[ind][subInd], next)          updateAdjacent(ind, subInd - 1, res[ind][subInd], next)          updateAdjacent(ind + 1, subInd, res[ind][subInd], next)          updateAdjacent(ind - 1, subInd, res[ind][subInd], next)       };       array = next;    }    return res; }; console.log(findNearestDistance(arr));

आउटपुट

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

[ [ 0, 0, 0 ], [ 0, 1, 0 ], [ 1, 2, 1 ] ]
  1. - JavaScript में डेसीमल को बाइनरी में कैसे बदलें?

    अवलोकनडेसीमल संख्या को बाइनरी स्ट्रिंग में बदलने के लिए toString(2) मेथड का उपयोग करें।उदाहरण<!DOCTYPE html> <html>    <body>       <script>          document.write("Decimal to Binary<br>");      

  1. जावास्क्रिप्ट में बाइनरी सर्च ट्री जावास्क्रिप्ट में बाइनरी सर्च ट्री

    बाइनरी सर्च ट्री एक विशेष व्यवहार प्रदर्शित करता है। एक नोड का बायां चाइल्ड का मान उसके पैरेंट के मान से कम होना चाहिए और नोड के दाएं चाइल्ड का मान उसके पैरेंट के मान से अधिक होना चाहिए। हम इस खंड में मुख्य रूप से ऐसे ट्रीज़ पर ध्यान केंद्रित करेंगे। बाइनरी सर्च ट्री पर ऑपरेशन्स हम बाइनरी सर्च ट्र

  1. जावास्क्रिप्ट में बाइनरी ट्री जावास्क्रिप्ट में बाइनरी ट्री

    बाइनरी ट्री डेटा स्टोरेज उद्देश्यों के लिए उपयोग की जाने वाली एक विशेष डेटा संरचना है। बाइनरी ट्री में एक विशेष शर्त होती है कि प्रत्येक नोड में अधिकतम दो चाइल्ड हो सकते हैं। बाइनरी ट्री में एक क्रमबद्ध ऐरे और एक लिंक्ड लिस्ट दोनों के लाभ होते हैं क्योंकि सर्च क्रमबद्ध ऐरे की तरह तेज़ होता है और इं