title: Finding largest connected tree in a matrix
body: <p>Assume I have a matrix MxN, filled with values between 0 and 5. I now want to determine the largest connected tree in that matrix, where the values of the matrix are considered to be the nodes. A pair of nodes is said to be connected if it's nodes are adjacent to each other either horizontally or vertically, and if the value of both nodes is the same. The size of a tree is equal to the nodes in the tree.</p>
  
  <p>An example:</p>
  
  <pre><code>1 0 3 0 0              2 2 0 0 0 0 0
  1 1 2 2 2              0 2 0 0 0 0 0
  0 1 0 3 0              0 2 0 0 0 0 2
  3 1 0 3 0              0 2 0 2 2 2 2
                         0 0 0 0 0 0 0
                         3 0 0 3 3 0 0
                         3 3 3 3 0 0 0
  </code></pre>
  
  <p>On the left side, the 1-nodes on the left side form the largest tree. On the right side, the 3-nodes form the largest tree, while there are two other trees consisting of 2-nodes.</p>
  
  <p>I know I could probably do a simple depth-first search, but I'm wondering if there is something well-known that I'm missing, maybe in the realm of graph theory (like Kruskal's minimum spanning tree algorithm, but for this example).</p>