Ваш вопрос предполагает как минимум две простые проверки для разных вещей.Если вы просто хотите проверить, что каждая точка достижима из любой другой точки, вы можете рассматривать точки как узлы в сети, где [x, y] связан с [x - 1, y], [x + 1, y], [x, y - 1] и [x, y + 1].Вы можете найти все узлы, достижимые из данного начального узла, используя поиск в глубину.Сделайте такой поиск с произвольного начального узла.Если вы посещаете все узлы, то выбранный регион является смежным.Я полагаю, что это просто заливка, происходящая из другого фона.
Для латинского квадрата подходит ли любая смежная область, или вам нужен прямоугольник с выравниванием по оси?Например, если в вашем соседнем регионе всего три точки, это нормально?Если вы хотите проверить прямоугольник, выровненный по оси, определите максимальное и минимальное значения x и y в наборе, а затем убедитесь, что у вас есть каждая комбинация [a, b], где Xmin <= a <= Xmax иYmin <= b <= Ymax. </p>