赞
踩
啥是 FloodFill 算法呢,
最直接的一个应用就是「颜色填充」,就是 Windows 绘画本中
那个小油漆桶的标志,可以把一块被圈起来的区域全部染色。
这种算法思想还在许多其他地方有应用。比如说扫雷游戏,有时候你点一个方格,
会一下子展开一片区域,这个展开过程,就是 FloodFill 算法实现的。
类似的,像消消乐这类游戏,相同方块积累到一定数量,就全部消除,
也是 FloodFill 算法的功劳。
一、构建框架
以上几个例子,都可以抽象成一个二维矩阵
,然后从某个点开始向四周扩展,直到无法再扩展为止
。
矩阵,可以抽象为一幅「图」,这就是一个图的遍历问题
,也就类似一个 N 叉树遍历
的问题。几行代码就能解决,直接上框架吧:
// (x, y) 为坐标位置
void fill(int x, int y)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。