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

सी # का उपयोग करके किसी दिए गए मैट्रिक्स में द्वीपों की संख्या कैसे मुद्रित करें?

2d ग्रिड मैप को लीनियर स्कैन करें, यदि किसी नोड में '1' है, तो यह एक रूट नोड है जो डेप्थ फर्स्ट सर्च को ट्रिगर करता है। डीएफएस के दौरान, विज़िट किए गए नोड के रूप में चिह्नित करने के लिए प्रत्येक विज़िट किए गए नोड को '0' के रूप में सेट किया जाना चाहिए। DFS को ट्रिगर करने वाले रूट नोड्स की संख्या की गणना करें, यह संख्या द्वीपों की संख्या होगी क्योंकि प्रत्येक DFS किसी रूट से शुरू होकर एक द्वीप की पहचान करता है।

उदाहरण

using System;
namespace ConsoleApplication{
   public class Matrix{
      public int PrintNumberOfIslands(char[,] grid){
         bool[,] visited = new bool[grid.GetLength(0), grid.GetLength(1)];
         int res = 0;
         for (int i = 0; i < grid.GetLength(0); i++){
            for (int j = 0; j < grid.GetLength(1); j++){
               if (grid[i, j] == '1' && !visited[i, j]){
                  DFS(grid, visited, i, j);
                  res++;
               }
            }
         }
         return res;
      }
      public void DFS(char[,] grid, bool[,] visited, int i, int j){
         if (i < 0 || i >= grid.GetLength(0)) return;
         if (j < 0 || j >= grid.GetLength(1)) return;
         if (grid[i, j] != '1' || visited[i, j]) return;
         visited[i, j] = true;
         DFS(grid, visited, i + 1, j);
         DFS(grid, visited, i - 1, j);
         DFS(grid, visited, i, j + 1);
         DFS(grid, visited, i, j - 1);
      }
   }
   class Program{
      static void Main(string[] args){
         Matrix m = new Matrix();
         char[,] mm = { { '1', '1', '1', '1', '0' }, { '1', '1', '0', '1', '0' }, { '1', '1', '0', '0', '0' }, { '0', '0', '0', '0', '1' } };
         Console.WriteLine(m.PrintNumberOfIslands(mm));
      }
   }
}

आउटपुट

2

  1. जावास्क्रिप्ट में किसी दिए गए नंबर को कैसे सत्यापित करें?

    किसी दिए गए नंबर को सत्यापित करने के लिए, isNan() फ़ंक्शन का उपयोग करें। यह जांचता है कि कोई मान संख्या नहीं है या नहीं। अगर सही रिटर्न मिलता है, तो इसका मतलब है कि मान कोई संख्या नहीं है। उदाहरण निम्न कोड गलत लौटाता है, जिसका अर्थ है कि मान एक संख्या है - <!DOCTYPE html> <html>   &

  1. जावास्क्रिप्ट का उपयोग करके पेज कैसे प्रिंट करें?

    JavaScript में किसी पेज को प्रिंट करने के लिए, प्रिंट () पद्धति का उपयोग करें। यह मानक संवाद बॉक्स खोलता है, जिसके माध्यम से आप आसानी से मुद्रण विकल्प सेट कर सकते हैं जैसे मुद्रण के लिए कौन सा प्रिंटर चुनना है। यहां एक उदाहरण दिया गया है - उदाहरण किसी पृष्ठ को प्रिंट करने का तरीका जानने के लिए आप

  1. पायथन का उपयोग करके अंतराल में सभी प्राइम नंबर कैसे प्रिंट करें?

    अभाज्य संख्या को एक ऐसी संख्या के रूप में परिभाषित किया गया है जो 1 और स्वयं को छोड़कर किसी अन्य संख्या से विभाज्य नहीं है। इसलिए यह सुनिश्चित करने के लिए कि कोई संख्या अभाज्य है, इसे 1 और स्वयं के बीच की सभी संख्याओं से विभाज्यता के लिए जाँच की जानी चाहिए, दोनों को छोड़कर। निम्नलिखित प्रोग्राम 1 से