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

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

<घंटा/>

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

हमारे फ़ंक्शन को एक नया मैट्रिक्स बनाना चाहिए जिसमें पंक्तियों और स्तंभों की समान संख्या हो, और मूल मैट्रिक्स के प्रत्येक तत्व के लिए परिणामी मैट्रिक्स में मूल मैट्रिक्स में उस तत्व की निकटतम दूरी 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. जावास्क्रिप्ट में दशमलव को बाइनरी में कैसे बदलें?

    जावास्क्रिप्ट में दशमलव को बाइनरी में बदलने के लिए, आप निम्न कोड को चलाने का प्रयास कर सकते हैं। उदाहरण <!DOCTYPE html> <html>    <body>       <script>          document.write("Decimal to Binary<br>");   &

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

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

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

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