小弟想用c语言编写一个同色相溶问题,就是一个二维数组,每一格有一种颜色,相邻格子颜色相同就消去。

关于边界检测问题,好像需要循环检测,能否给一个算法思路
2024-12-14 16:30:21
推荐回答(1个)
回答1:

就是一个边界判断的问题吧,知道二维数组的行数和列数以后,就只剩下边界判断的问题咯。
另外,如果你要让消去后的空格由上面掉下来的格子填充,只需要循环移动上面的格子就可以了。

算法名叫FloodFill,可以基于深度优先遍历实现,也可以基于广度优先遍历实现,效果相同,如果担心堆栈溢出的话建议使用广度优先搜索。但深度优先使用递归比较容易实现。