我有简单的矩阵(矩阵,它代表二维游戏中的地形图,包含ASCII字符,例如'm‘代表山脉,'v’代表河谷,'r‘代表河流),在地图上可能有一条河流,也可能没有河流。河流可以从矩阵的任何位置流向任何位置(并且始终将两个不同部分的地图分开,=>地图上不可能有河流的来源,总是从一端进入而存在于另一端)。如果有河流,如何在两个集群上分离矩阵/地形图?v m m r r m m m m m
m m v m m m m
每个0代表土地,每个1代表河流的一部分。河流由水平或垂直相邻(但不是对角线相邻)的任意数量的1s组成。形成一条河流的相邻1s的数量决定了它的大小。编写一个函数,返回输入矩阵中表示的所有河流大小的数组。1,0,1,0,0],[1,0,1,0,1],]
My Approach
在对问题进行评估后,我觉得应该使用图遍历我从左上角遍历矩阵,看看是否访问了值,如果没有访问,如果值为1,则遍历所有节点,并保持一个计数器以保