#include<stdio.h>
int land[4][4] = {1,0,1,0,
1,1,0,0,
0,0,0,0,
0,1,0,0};
int dx[4] = { 1,-1,0,0 };
int dy[4] = { 0,0,1,-1 };
int sink(size_t i, size_t j)
{
if (i < 0 || i >= 4 || j < 0 || j>=4) {
return 0;
}
if (land[i][j] == 0) {
return 0;
}
land[i][j] = 0;
for (size_t k = 0; k < 4; k++)
{
sink(i + dx[k], j + dy[k]);
}
return 1;
}
void main()
{
int count = 0;
for (size_t i = 0; i < 4; i++)
{
for (rsize_t j = 0; j < 4; j++)
{
count += sink(i, j);
}
}
}
遍历连通子图个数,给定一个二维数组,元素为0或者1,求连通的1的个数
最新推荐文章于 2023-01-24 09:49:06 发布