这道题的解题思路其实不难,关键在于许多细节上。
解题的主要思路就是,每检测到一个坐标是1,就将他赋值为0并且把他上下左右四个坐标检测一遍,如果是1,就继续赋值为0并检测他的上下左右四个坐标,以此类推。这样就记录到一个岛,并且将整个岛都消去,避免重复计数。,
但我起先一直出现运行错误,多次检查,百思不得其解。后来终于发现,当行或列刚好为1时,会出现将i或j减一的情况,这样会得到一个无法运行的负值。
代码如下:
本文介绍了一种用于消除二维数组中所有相连'1'(代表岛屿)的算法实现过程。核心思路是从每个'1'开始递归地将其及相邻的'1'置为'0',确保每个岛屿仅被计算一次。
这道题的解题思路其实不难,关键在于许多细节上。
解题的主要思路就是,每检测到一个坐标是1,就将他赋值为0并且把他上下左右四个坐标检测一遍,如果是1,就继续赋值为0并检测他的上下左右四个坐标,以此类推。这样就记录到一个岛,并且将整个岛都消去,避免重复计数。,
但我起先一直出现运行错误,多次检查,百思不得其解。后来终于发现,当行或列刚好为1时,会出现将i或j减一的情况,这样会得到一个无法运行的负值。
代码如下:

被折叠的 条评论
为什么被折叠?