Я пытаюсь сгруппировать 2D-массив в несколько фрагментов данных. Алгоритм, который я нашел и который наиболее близок к решению, которое я ищу, - это маркировка подключенных компонентов, но он должен быть в состоянии управлять промежутками между кусками.
Например, с учетом матрицы с данными, подобными этим :
[3][0][0][0][1][0][1][0][0]
[2][6][0][3][1][0][9][0][0]
[5][2][0][0][0][0][0][0][0]
[1][1][1][0][0][0][0][0][0]
[0][0][0][0][0][0][0][0][0]
[0][0][0][0][0][6][1][0][0]
[0][0][0][0][0][3][0][0][2]
Алгоритм должен возвращать что-то, помеченное так:
[1][0][0][0][1][0][1][0][0]
[1][1][0][1][1][0][1][0][0]
[1][1][0][0][0][0][0][0][0]
[1][1][1][0][0][0][0][0][0]
[0][0][0][0][0][0][0][0][0]
[0][0][0][0][0][2][2][0][0]
[0][0][0][0][0][2][0][0][2]
Каков наилучший способ добиться этого?
Спасибо