Было интересно, может ли кто-нибудь помочь мне с некоторой логикой.Определить количество сгруппированных значений в сетке
Скажем, у меня есть сетка, которая состоит из:
1 2 3
1 A B A
2 A B B
3 A A B
Есть 3 группы в этой сетке, которые определяются по стоимости каждой ячейки и всех соседних ячеек, которые имеют одинаковое значение, так предполагающие координат схемы это (колонка, строка):
Группа 1: (1, 1), (1, 2), (1, 3), (2, 3), который имеет значение A
Группа 2: (2, 1), (2, 2), (3, 2), (3, 3), который имеет значение B
Группа 3: (3, 1), которая имеет значение A
Может ли кто-нибудь предложить, как бы определить это программно?
Я думал вдоль линий:
- Использовать цикл для итерации через сетку
- есть метод, который проверяет верхнюю ячейку, справа, снизу и значение левой ячейки (также учет граничных ячеек)
- Проверьте, если ячейка имеет то же значение, а затем сохранить его как-то
- в противном случае это новая группа?
- Recurse
- есть метод, который проверяет верхнюю ячейку, справа, снизу и значение левой ячейки (также учет граничных ячеек)
Но я не могу обойти, что делать, если он находит ячейку с другим значением. Я думаю, что я слишком усложняю простое решение здесь.
Я бы идеально хотел хранить массив координат, относящихся ко всем группам в сетке.
Не будет ли группа 1 иметь значение ABAB? (1, 1), (1, 2), (1, 3), (2, 3) имеют значения A, B, A, B. Что именно вы пытаетесь сделать? – RockOnRockOut
Извините, если я не был ясен, координатная схема (col, row). Таким образом, первая группа - это все A слева от сетки и нижняя средняя. Я пытаюсь определить во-первых, сколько разных групп есть в сетке, а затем получить координаты каждой ячейки, к которой она принадлежит. Надеюсь, что это сделано более ясно. – willww
Хорошо, я думаю, что я как-то понял. Итак, вам нужен массив координат для каждой группы? – RockOnRockOut