这道题的解题思路其实不难,关键在于许多细节上。
解题的主要思路就是,每检测到一个坐标是1,就将他赋值为0并且把他上下左右四个坐标检测一遍,如果是1,就继续赋值为0并检测他的上下左右四个坐标,以此类推。这样就记录到一个岛,并且将整个岛都消去,避免重复计数。,
但我起先一直出现运行错误,多次检查,百思不得其解。后来终于发现,当行或列刚好为1时,会出现将i或j减一的情况,这样会得到一个无法运行的负值。
代码如下:
这道题的解题思路其实不难,关键在于许多细节上。
解题的主要思路就是,每检测到一个坐标是1,就将他赋值为0并且把他上下左右四个坐标检测一遍,如果是1,就继续赋值为0并检测他的上下左右四个坐标,以此类推。这样就记录到一个岛,并且将整个岛都消去,避免重复计数。,
但我起先一直出现运行错误,多次检查,百思不得其解。后来终于发现,当行或列刚好为1时,会出现将i或j减一的情况,这样会得到一个无法运行的负值。
代码如下: