varunpvk
BAN USERthis solution assumes the input matrix order is 4by4.
static void GroupCount(ref int[,] Arr)
{
int groupCount = 1;
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
if (Arr[i, j] == 1)
{
groupCount += 1;
Arr[i, j] = groupCount;
if (i + 1 < 4)
{
if (Arr[i + 1, j] == 1)
{
Arr[i + 1, j] = Arr[i, j];
CombineGroup(ref Arr, i + 1, j);
}
}
if (j + 1 < 4)
{
if (Arr[i, j + 1] == 1)
{
Arr[i, j + 1] = Arr[i, j];
CombineGroup(ref Arr, i, j + 1);
}
}
}
}
}
Console.WriteLine("GroupCount is {0}", groupCount-1);
Console.ReadLine();
}
private static void CombineGroup(ref int[,] Arr, int i, int j)
{
if (i + 1 < 4)
{
if (Arr[i + 1, j] == 1)
{
Arr[i + 1, j] = Arr[i, j];
CombineGroup(ref Arr, i + 1, j);
}
}
if (j + 1 < 4)
{
if (Arr[i, j + 1] == 1)
{
Arr[i, j + 1] = Arr[i, j];
CombineGroup(ref Arr, i, j + 1);
}
}
}
- varunpvk July 19, 2020