여기에 (검은 사람 계산)의 예이다 :2 차원 배열에서 동일한 셀 그룹을 계산하는 방법은 무엇입니까?
입력 :
출력 :
5 4 // 5 groups (4 squares each)
1 1 // 1 group containing 1 square
지금, 나는에 대한 고통 스럽다보다 더 나은 아무것도 생각할 수 없다 되풀이. 재귀 방식으로 이러한 그룹을 확보 할 수 있습니까? 감사합니다.
여기에 (검은 사람 계산)의 예이다 :2 차원 배열에서 동일한 셀 그룹을 계산하는 방법은 무엇입니까?
입력 :
출력 :
5 4 // 5 groups (4 squares each)
1 1 // 1 group containing 1 square
지금, 나는에 대한 고통 스럽다보다 더 나은 아무것도 생각할 수 없다 되풀이. 재귀 방식으로 이러한 그룹을 확보 할 수 있습니까? 감사합니다.
처음에는 각 셀을 "방문하지 않았습니다".
"방문하지 않은"검은 색 셀을 만날 때까지 셀을 반복합니다. 당신이 그 지점까지 쳤던 각각의 흰색 셀
검은 셀을 누르면 가능한 경우 모든 방향으로 "확장"합니다 ("floodfilling"과 유사). 가능한 한 확장하여 방문한 모든 셀을 "방문한"것으로 표시합니다. 그렇게 한 후에는 얼마나 많은 흑인 세포가 감염되었는지를 세고 그룹이 얼마나 큰지 알게됩니다. 그룹을 찾으면 다음 "방문하지 않은"검은 색 셀로 이동합니다.
당신은 내가 입력을 볼 수 없습니다
4 연결과 connected component labeling에 대한 알고리즘을 사용할 수 있습니다! – elyashiv
"그룹"으로 간주되는 것은 무엇입니까? 직사각형? 연속적인 검은 색 영역? – phimuemue
글쎄, 그림은 2 차원 어레이 입력이고 검은 색 영역은 검은 색 사각형이 서로 나란히 놓여있는 블록입니다 (대각선으로는 염색되지 않습니다) – Patryk